@arbor-education/design-system.components 0.15.0 → 0.16.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 (304) hide show
  1. package/.gather/skills/write-stories/SKILL.md +207 -271
  2. package/.storybook/preview.ts +5 -0
  3. package/CHANGELOG.md +23 -0
  4. package/README.md +8 -0
  5. package/component-library.md +144 -13
  6. package/dist/components/articleCard/ArticleCard.stories.d.ts +137 -11
  7. package/dist/components/articleCard/ArticleCard.stories.d.ts.map +1 -1
  8. package/dist/components/articleCard/ArticleCard.stories.js +358 -91
  9. package/dist/components/articleCard/ArticleCard.stories.js.map +1 -1
  10. package/dist/components/avatar/Avatar.stories.d.ts +6 -6
  11. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  12. package/dist/components/avatar/Avatar.stories.js +393 -49
  13. package/dist/components/avatar/Avatar.stories.js.map +1 -1
  14. package/dist/components/avatarGroup/AvatarGroup.stories.d.ts +9 -7
  15. package/dist/components/avatarGroup/AvatarGroup.stories.d.ts.map +1 -1
  16. package/dist/components/avatarGroup/AvatarGroup.stories.js +688 -65
  17. package/dist/components/avatarGroup/AvatarGroup.stories.js.map +1 -1
  18. package/dist/components/banner/Banner.stories.d.ts.map +1 -1
  19. package/dist/components/banner/Banner.stories.js +7 -3
  20. package/dist/components/banner/Banner.stories.js.map +1 -1
  21. package/dist/components/card/Card.stories.d.ts +105 -4
  22. package/dist/components/card/Card.stories.d.ts.map +1 -1
  23. package/dist/components/card/Card.stories.js +336 -18
  24. package/dist/components/card/Card.stories.js.map +1 -1
  25. package/dist/components/combobox/Combobox.stories.d.ts +134 -21
  26. package/dist/components/combobox/Combobox.stories.d.ts.map +1 -1
  27. package/dist/components/combobox/Combobox.stories.js +676 -175
  28. package/dist/components/combobox/Combobox.stories.js.map +1 -1
  29. package/dist/components/datePicker/DatePicker.stories.d.ts +119 -27
  30. package/dist/components/datePicker/DatePicker.stories.d.ts.map +1 -1
  31. package/dist/components/datePicker/DatePicker.stories.js +575 -47
  32. package/dist/components/datePicker/DatePicker.stories.js.map +1 -1
  33. package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts +155 -39
  34. package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts.map +1 -1
  35. package/dist/components/dateTimePicker/DateTimePicker.stories.js +674 -103
  36. package/dist/components/dateTimePicker/DateTimePicker.stories.js.map +1 -1
  37. package/dist/components/editableText/EditableText.stories.d.ts +53 -12
  38. package/dist/components/editableText/EditableText.stories.d.ts.map +1 -1
  39. package/dist/components/editableText/EditableText.stories.js +401 -64
  40. package/dist/components/editableText/EditableText.stories.js.map +1 -1
  41. package/dist/components/formField/FormField.d.ts +4 -0
  42. package/dist/components/formField/FormField.d.ts.map +1 -1
  43. package/dist/components/formField/FormField.js +2 -1
  44. package/dist/components/formField/FormField.js.map +1 -1
  45. package/dist/components/formField/FormField.test.js +5 -0
  46. package/dist/components/formField/FormField.test.js.map +1 -1
  47. package/dist/components/formField/fieldset/Fieldset.stories.d.ts +56 -4
  48. package/dist/components/formField/fieldset/Fieldset.stories.d.ts.map +1 -1
  49. package/dist/components/formField/fieldset/Fieldset.stories.js +534 -28
  50. package/dist/components/formField/fieldset/Fieldset.stories.js.map +1 -1
  51. package/dist/components/formField/inputs/checkbox/CheckboxGroup.d.ts +3 -1
  52. package/dist/components/formField/inputs/checkbox/CheckboxGroup.d.ts.map +1 -1
  53. package/dist/components/formField/inputs/checkbox/CheckboxInput.js +1 -1
  54. package/dist/components/formField/inputs/checkbox/CheckboxInput.js.map +1 -1
  55. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.d.ts +95 -1
  56. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.d.ts.map +1 -1
  57. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.js +386 -9
  58. package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.js.map +1 -1
  59. package/dist/components/formField/inputs/radio/RadioButtonGroup.d.ts +6 -2
  60. package/dist/components/formField/inputs/radio/RadioButtonGroup.d.ts.map +1 -1
  61. package/dist/components/formField/inputs/radio/RadioButtonGroup.js.map +1 -1
  62. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.d.ts.map +1 -1
  63. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js +61 -49
  64. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js.map +1 -1
  65. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts +188 -166
  66. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts.map +1 -1
  67. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js +821 -160
  68. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js.map +1 -1
  69. package/dist/components/formField/inputs/time/TimeInput.stories.d.ts +176 -22
  70. package/dist/components/formField/inputs/time/TimeInput.stories.d.ts.map +1 -1
  71. package/dist/components/formField/inputs/time/TimeInput.stories.js +851 -92
  72. package/dist/components/formField/inputs/time/TimeInput.stories.js.map +1 -1
  73. package/dist/components/formField/label/Label.stories.d.ts +54 -5
  74. package/dist/components/formField/label/Label.stories.d.ts.map +1 -1
  75. package/dist/components/formField/label/Label.stories.js +238 -4
  76. package/dist/components/formField/label/Label.stories.js.map +1 -1
  77. package/dist/components/icoText/IcoText.stories.d.ts +32 -6
  78. package/dist/components/icoText/IcoText.stories.d.ts.map +1 -1
  79. package/dist/components/icoText/IcoText.stories.js +309 -14
  80. package/dist/components/icoText/IcoText.stories.js.map +1 -1
  81. package/dist/components/kpiCard/KPICard.stories.d.ts +100 -2
  82. package/dist/components/kpiCard/KPICard.stories.d.ts.map +1 -1
  83. package/dist/components/kpiCard/KPICard.stories.js +354 -10
  84. package/dist/components/kpiCard/KPICard.stories.js.map +1 -1
  85. package/dist/components/kvpList/KVPList.stories.d.ts +57 -4
  86. package/dist/components/kvpList/KVPList.stories.d.ts.map +1 -1
  87. package/dist/components/kvpList/KVPList.stories.js +403 -10
  88. package/dist/components/kvpList/KVPList.stories.js.map +1 -1
  89. package/dist/components/modal/Modal.stories.d.ts +113 -9
  90. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  91. package/dist/components/modal/Modal.stories.js +633 -13
  92. package/dist/components/modal/Modal.stories.js.map +1 -1
  93. package/dist/components/modal/modalManager/ModalManager.stories.d.ts +34 -10
  94. package/dist/components/modal/modalManager/ModalManager.stories.d.ts.map +1 -1
  95. package/dist/components/modal/modalManager/ModalManager.stories.js +463 -85
  96. package/dist/components/modal/modalManager/ModalManager.stories.js.map +1 -1
  97. package/dist/components/pill/Pill.d.ts.map +1 -1
  98. package/dist/components/pill/Pill.js +1 -1
  99. package/dist/components/pill/Pill.js.map +1 -1
  100. package/dist/components/pill/Pill.stories.d.ts.map +1 -1
  101. package/dist/components/pill/Pill.stories.js +11 -13
  102. package/dist/components/pill/Pill.stories.js.map +1 -1
  103. package/dist/components/row/Row.stories.d.ts +1 -2
  104. package/dist/components/row/Row.stories.d.ts.map +1 -1
  105. package/dist/components/row/Row.stories.js +360 -50
  106. package/dist/components/row/Row.stories.js.map +1 -1
  107. package/dist/components/searchBar/SearchBar.stories.d.ts +52 -4
  108. package/dist/components/searchBar/SearchBar.stories.d.ts.map +1 -1
  109. package/dist/components/searchBar/SearchBar.stories.js +428 -36
  110. package/dist/components/searchBar/SearchBar.stories.js.map +1 -1
  111. package/dist/components/section/Section.stories.d.ts +11 -41
  112. package/dist/components/section/Section.stories.d.ts.map +1 -1
  113. package/dist/components/section/Section.stories.js +494 -56
  114. package/dist/components/section/Section.stories.js.map +1 -1
  115. package/dist/components/singleUser/SingleUser.stories.d.ts +5 -4
  116. package/dist/components/singleUser/SingleUser.stories.d.ts.map +1 -1
  117. package/dist/components/singleUser/SingleUser.stories.js +303 -31
  118. package/dist/components/singleUser/SingleUser.stories.js.map +1 -1
  119. package/dist/components/slideoverManager/SlideoverManager.stories.d.ts +32 -11
  120. package/dist/components/slideoverManager/SlideoverManager.stories.d.ts.map +1 -1
  121. package/dist/components/slideoverManager/SlideoverManager.stories.js +380 -84
  122. package/dist/components/slideoverManager/SlideoverManager.stories.js.map +1 -1
  123. package/dist/components/table/DSDefaultColDef.d.ts.map +1 -1
  124. package/dist/components/table/DSDefaultColDef.js +4 -3
  125. package/dist/components/table/DSDefaultColDef.js.map +1 -1
  126. package/dist/components/table/Table.d.ts +6 -1
  127. package/dist/components/table/Table.d.ts.map +1 -1
  128. package/dist/components/table/Table.js +8 -3
  129. package/dist/components/table/Table.js.map +1 -1
  130. package/dist/components/table/Table.stories.d.ts +3 -0
  131. package/dist/components/table/Table.stories.d.ts.map +1 -1
  132. package/dist/components/table/Table.stories.js +384 -5
  133. package/dist/components/table/Table.stories.js.map +1 -1
  134. package/dist/components/table/Table.test.js +30 -0
  135. package/dist/components/table/Table.test.js.map +1 -1
  136. package/dist/components/table/TableFooter.stories.d.ts +49 -0
  137. package/dist/components/table/TableFooter.stories.d.ts.map +1 -0
  138. package/dist/components/table/TableFooter.stories.js +137 -0
  139. package/dist/components/table/TableFooter.stories.js.map +1 -0
  140. package/dist/components/table/TableHeader.stories.d.ts +93 -0
  141. package/dist/components/table/TableHeader.stories.d.ts.map +1 -0
  142. package/dist/components/table/TableHeader.stories.js +176 -0
  143. package/dist/components/table/TableHeader.stories.js.map +1 -0
  144. package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts +44 -0
  145. package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts.map +1 -0
  146. package/dist/components/table/cellEditors/DateCellEditor.stories.js +186 -0
  147. package/dist/components/table/cellEditors/DateCellEditor.stories.js.map +1 -0
  148. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts +40 -0
  149. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts.map +1 -0
  150. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js +209 -0
  151. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js.map +1 -0
  152. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts +48 -0
  153. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts.map +1 -0
  154. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js +244 -0
  155. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js.map +1 -0
  156. package/dist/components/table/cellRenderers/CheckboxCellRenderer.d.ts.map +1 -1
  157. package/dist/components/table/cellRenderers/CheckboxCellRenderer.js +3 -1
  158. package/dist/components/table/cellRenderers/CheckboxCellRenderer.js.map +1 -1
  159. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts +64 -0
  160. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts.map +1 -0
  161. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js +241 -0
  162. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js.map +1 -0
  163. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts +55 -0
  164. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts.map +1 -0
  165. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js +245 -0
  166. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js.map +1 -0
  167. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts +67 -0
  168. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts.map +1 -0
  169. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js +221 -0
  170. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js.map +1 -0
  171. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts +75 -0
  172. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts.map +1 -0
  173. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js +270 -0
  174. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js.map +1 -0
  175. package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts +57 -0
  176. package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts.map +1 -0
  177. package/dist/components/table/columnFilters/BooleanFilter.stories.js +198 -0
  178. package/dist/components/table/columnFilters/BooleanFilter.stories.js.map +1 -0
  179. package/dist/components/table/columnFilters/TimeFilter.stories.d.ts +58 -0
  180. package/dist/components/table/columnFilters/TimeFilter.stories.d.ts.map +1 -0
  181. package/dist/components/table/columnFilters/TimeFilter.stories.js +207 -0
  182. package/dist/components/table/columnFilters/TimeFilter.stories.js.map +1 -0
  183. package/dist/components/table/pagination/PaginationPanel.stories.d.ts +113 -0
  184. package/dist/components/table/pagination/PaginationPanel.stories.d.ts.map +1 -0
  185. package/dist/components/table/pagination/PaginationPanel.stories.js +272 -0
  186. package/dist/components/table/pagination/PaginationPanel.stories.js.map +1 -0
  187. package/dist/components/table/tableControls/HideColumnsDropdown.d.ts.map +1 -1
  188. package/dist/components/table/tableControls/HideColumnsDropdown.js +9 -3
  189. package/dist/components/table/tableControls/HideColumnsDropdown.js.map +1 -1
  190. package/dist/components/table/tableControls/TableControls.stories.d.ts +151 -0
  191. package/dist/components/table/tableControls/TableControls.stories.d.ts.map +1 -0
  192. package/dist/components/table/tableControls/TableControls.stories.js +356 -0
  193. package/dist/components/table/tableControls/TableControls.stories.js.map +1 -0
  194. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts +27 -1
  195. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts.map +1 -1
  196. package/dist/components/table/tableControls/TableSettingsDropdown.js +53 -26
  197. package/dist/components/table/tableControls/TableSettingsDropdown.js.map +1 -1
  198. package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts +2 -0
  199. package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts.map +1 -0
  200. package/dist/components/table/tableControls/TableSettingsDropdown.test.js +178 -0
  201. package/dist/components/table/tableControls/TableSettingsDropdown.test.js.map +1 -0
  202. package/dist/components/tabs/Tabs.stories.d.ts +22 -4
  203. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  204. package/dist/components/tabs/Tabs.stories.js +398 -22
  205. package/dist/components/tabs/Tabs.stories.js.map +1 -1
  206. package/dist/components/tabs/TabsItem.stories.d.ts +54 -1
  207. package/dist/components/tabs/TabsItem.stories.d.ts.map +1 -1
  208. package/dist/components/tabs/TabsItem.stories.js +61 -9
  209. package/dist/components/tabs/TabsItem.stories.js.map +1 -1
  210. package/dist/components/toast/Toast.stories.d.ts +103 -10
  211. package/dist/components/toast/Toast.stories.d.ts.map +1 -1
  212. package/dist/components/toast/Toast.stories.js +409 -47
  213. package/dist/components/toast/Toast.stories.js.map +1 -1
  214. package/dist/components/toggle/Toggle.stories.d.ts +61 -46
  215. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  216. package/dist/components/toggle/Toggle.stories.js +311 -122
  217. package/dist/components/toggle/Toggle.stories.js.map +1 -1
  218. package/dist/components/tooltip/Tooltip.stories.d.ts +78 -6
  219. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  220. package/dist/components/tooltip/Tooltip.stories.js +413 -7
  221. package/dist/components/tooltip/Tooltip.stories.js.map +1 -1
  222. package/dist/components/tooltip/TooltipWrapper.stories.d.ts +71 -7
  223. package/dist/components/tooltip/TooltipWrapper.stories.d.ts.map +1 -1
  224. package/dist/components/tooltip/TooltipWrapper.stories.js +238 -10
  225. package/dist/components/tooltip/TooltipWrapper.stories.js.map +1 -1
  226. package/dist/index.css +8 -0
  227. package/dist/index.css.map +1 -1
  228. package/dist/utils/PopupParentContext.stories.d.ts +17 -0
  229. package/dist/utils/PopupParentContext.stories.d.ts.map +1 -0
  230. package/dist/utils/PopupParentContext.stories.js +266 -0
  231. package/dist/utils/PopupParentContext.stories.js.map +1 -0
  232. package/dist/utils/getDefaultPopupParent.d.ts.map +1 -1
  233. package/dist/utils/getDefaultPopupParent.js +6 -0
  234. package/dist/utils/getDefaultPopupParent.js.map +1 -1
  235. package/package.json +1 -1
  236. package/src/components/articleCard/ArticleCard.stories.tsx +524 -111
  237. package/src/components/avatar/Avatar.stories.tsx +504 -59
  238. package/src/components/avatarGroup/AvatarGroup.stories.tsx +977 -175
  239. package/src/components/banner/Banner.stories.tsx +7 -3
  240. package/src/components/card/Card.stories.tsx +466 -36
  241. package/src/components/combobox/Combobox.stories.tsx +867 -260
  242. package/src/components/datePicker/DatePicker.stories.tsx +777 -60
  243. package/src/components/dateTimePicker/DateTimePicker.stories.tsx +910 -132
  244. package/src/components/editableText/EditableText.stories.tsx +567 -91
  245. package/src/components/formField/FormField.test.tsx +6 -0
  246. package/src/components/formField/FormField.tsx +5 -0
  247. package/src/components/formField/fieldset/Fieldset.stories.tsx +761 -51
  248. package/src/components/formField/inputs/checkbox/CheckboxGroup.tsx +1 -1
  249. package/src/components/formField/inputs/checkbox/CheckboxInput.tsx +1 -1
  250. package/src/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.tsx +504 -11
  251. package/src/components/formField/inputs/radio/RadioButtonGroup.tsx +17 -4
  252. package/src/components/formField/inputs/radio/RadioButtonInput.stories.tsx +71 -59
  253. package/src/components/formField/inputs/selectDropdown/SelectDropdown.stories.tsx +1079 -168
  254. package/src/components/formField/inputs/time/TimeInput.stories.tsx +1140 -104
  255. package/src/components/formField/label/Label.stories.tsx +317 -8
  256. package/src/components/icoText/IcoText.stories.tsx +442 -31
  257. package/src/components/kpiCard/KPICard.stories.tsx +475 -30
  258. package/src/components/kvpList/KVPList.stories.tsx +593 -26
  259. package/src/components/modal/Modal.stories.tsx +963 -26
  260. package/src/components/modal/modalManager/ModalManager.stories.tsx +612 -454
  261. package/src/components/pill/Pill.stories.tsx +11 -13
  262. package/src/components/pill/Pill.tsx +1 -0
  263. package/src/components/row/Row.stories.tsx +474 -58
  264. package/src/components/searchBar/SearchBar.stories.tsx +570 -38
  265. package/src/components/section/Section.stories.tsx +723 -70
  266. package/src/components/singleUser/SingleUser.stories.tsx +393 -34
  267. package/src/components/slideoverManager/SlideoverManager.stories.tsx +572 -342
  268. package/src/components/table/DSDefaultColDef.ts +25 -5
  269. package/src/components/table/Table.stories.tsx +460 -5
  270. package/src/components/table/Table.test.tsx +53 -0
  271. package/src/components/table/Table.tsx +9 -2
  272. package/src/components/table/TableFooter.stories.tsx +196 -0
  273. package/src/components/table/TableHeader.stories.tsx +251 -0
  274. package/src/components/table/cellEditors/DateCellEditor.stories.tsx +245 -0
  275. package/src/components/table/cellRenderers/BooleanCellRenderer.stories.tsx +278 -0
  276. package/src/components/table/cellRenderers/ButtonCellRenderer.stories.tsx +333 -0
  277. package/src/components/table/cellRenderers/CheckboxCellRenderer.stories.tsx +337 -0
  278. package/src/components/table/cellRenderers/CheckboxCellRenderer.tsx +5 -1
  279. package/src/components/table/cellRenderers/DefaultCellRenderer.stories.tsx +342 -0
  280. package/src/components/table/cellRenderers/InlineTextCellRenderer.stories.tsx +292 -0
  281. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx +369 -0
  282. package/src/components/table/columnFilters/BooleanFilter.stories.tsx +268 -0
  283. package/src/components/table/columnFilters/TimeFilter.stories.tsx +281 -0
  284. package/src/components/table/pagination/PaginationPanel.stories.tsx +327 -0
  285. package/src/components/table/tableControls/HideColumnsDropdown.tsx +11 -2
  286. package/src/components/table/tableControls/TableControls.stories.tsx +415 -0
  287. package/src/components/table/tableControls/TableSettingsDropdown.test.tsx +207 -0
  288. package/src/components/table/tableControls/TableSettingsDropdown.tsx +103 -39
  289. package/src/components/tabs/Tabs.stories.tsx +540 -60
  290. package/src/components/tabs/TabsItem.stories.tsx +82 -8
  291. package/src/components/toast/Toast.stories.tsx +539 -77
  292. package/src/components/toggle/Toggle.stories.tsx +371 -135
  293. package/src/components/tooltip/Tooltip.stories.tsx +606 -15
  294. package/src/components/tooltip/TooltipWrapper.stories.tsx +348 -12
  295. package/src/docs/Contributing.mdx +241 -0
  296. package/src/docs/UsingComponents.mdx +93 -0
  297. package/src/docs/Welcome.mdx +68 -0
  298. package/src/global.scss +7 -0
  299. package/src/utils/PopupParentContext.stories.tsx +367 -0
  300. package/src/utils/getDefaultPopupParent.ts +6 -0
  301. package/.ralph/storybook-upgrade/knowledge.md +0 -308
  302. package/.ralph/storybook-upgrade/prd.json +0 -777
  303. package/.ralph/storybook-upgrade/progress.md +0 -342
  304. package/src/components/table/TableWIP.mdx +0 -3
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Auto-generated reference for AI agents (Sophia, analyze-design, etc.)
4
4
  > Source: `src/components/` · Public API: `src/index.ts`
5
- > Last updated: 2026-04-22
5
+ > Last updated: 2026-05-05
6
6
 
7
7
  ---
8
8
 
@@ -180,27 +180,86 @@ Component-scoped tokens follow: `--{component}-{state}-{property}` (e.g. `--butt
180
180
  ### 5. Card
181
181
 
182
182
  **File:** `src/components/card/Card.tsx` · **Public export:** Yes
183
+ **Also exports:** `CardProps`, `Card.Props`, `Card.AccessibleNameProps`, `Card.InteractiveProps`, `Card.InteractionProps` types; `getCardInteractionProps` utility
183
184
 
184
- **Use case:** Navigational or informational content block for module selection, settings pages, or pick-from-a-list UIs.
185
+ **Use case:** Surface component for grouping related content into a visually distinct container. Two modes: **static** (read-only content display) and **interactive** (clickable, `role="button"`, keyboard support, chevron→arrow icon). Foundation for `ArticleCard` and `KPICard`.
185
186
 
186
187
  | Prop | Type | Required | Default | Description |
187
188
  |---|---|---|---|---|
188
- | `title` | `string` | No | — | Card heading |
189
- | `paragraph` | `string` | No | | Descriptive text |
189
+ | `children` | `ReactNode` | No | — | Content rendered inside card body |
190
+ | `spacing` | `'default' \| 'dense'` | No | `'default'` | Padding variant. `'dense'` uses `--spacing-small` |
191
+ | `disabled` | `boolean` | No | `false` | Disables interactive card (no-op on static cards) |
192
+ | `onClick` | `(e: MouseEvent<HTMLElement>) => void` | No | — | Switches card to interactive mode |
193
+ | `onKeyDown` | `(e: KeyboardEvent<HTMLElement>) => void` | No | — | Additional keydown handler (interactive only) |
194
+ | `aria-label` | `string` | **Required on interactive cards** | — | Accessible name |
195
+ | `aria-labelledby` | `string` | **Required on interactive cards** | — | Alternative to `aria-label` |
196
+ | `className` | `string` | No | — | Additional CSS class on root `<figure>` |
197
+
198
+ **Variants:** static (no `onClick`) / interactive (`onClick` provided, renders `role="button"`) / disabled interactive
199
+
200
+ **Key features:**
201
+ - Renders as `<figure>`
202
+ - Interactive cards: `role="button"`, `tabIndex={0}`, chevron-right icon (swaps to arrow-right on hover)
203
+ - `aria-label` or `aria-labelledby` **required** when `onClick` provided — throws in dev, console.error in prod without one
204
+ - `disabled` only has effect when `onClick` is also provided; sets `aria-disabled={true}`, suppresses click/keyboard
205
+ - Never nest interactive elements (`Button`, `a`, `input`) inside a clickable card — WCAG 2.1 violation
206
+
207
+ > **MANIFEST CORRECTION (2026-05-05):** Card was fully rewritten. Old props `title`, `paragraph`, `icon`, `tagText`, `tagColor`, etc. are GONE. Use `ArticleCard` or `KPICard` for those use cases.
208
+
209
+ ---
210
+
211
+ ### 5a. ArticleCard
212
+
213
+ **File:** `src/components/articleCard/ArticleCard.tsx` · **Public export:** Yes
214
+ **Also exports:** `ArticleCardProps` type
215
+
216
+ **Use case:** Card variant for article/content listings — combines an icon, heading, paragraph, and optional tag. Supports two modes: linked (heading wraps an `<a>`) or interactive shell (passes `onClick` through to `Card`).
217
+
218
+ | Prop | Type | Required | Default | Description |
219
+ |---|---|---|---|---|
220
+ | `title` | `ReactNode` | No | — | Card heading |
221
+ | `paragraph` | `ReactNode` | No | — | Descriptive text |
190
222
  | `icon` | `IconName` | No | — | Leading icon |
191
- | `iconColor` | `string` | No | — | Icon color override |
223
+ | `iconColor` | `IcoTextIconProps['color']` | No | — | Icon color |
192
224
  | `iconScreenReaderText` | `string` | No | — | SR text for icon |
193
- | `tagText` | `string` | No | — | Tag label inside card |
225
+ | `tagText` | `string` | No | — | Tag label |
194
226
  | `tagColor` | `TagColor` | No | — | Tag color |
195
- | `onClick` | `(e: React.MouseEvent<HTMLElement>) => void` | No | | Makes card clickable |
196
- | `disabled` | `boolean` | No | — | Disables interaction |
227
+ | `disabled` | `boolean` | No | `false` | Disabled state |
228
+ | `href` | `string` | Mutually exclusive with `onClick` | — | **Linked mode**: heading becomes `<a href>` |
229
+ | `onClick` | `(e: MouseEvent<HTMLElement>) => void` | Mutually exclusive with `href` | — | **Interactive shell mode** |
230
+ | `aria-label` | `string` | No | — | Accessible name override |
231
+ | `aria-labelledby` | `string` | No | — | Alternative accessible name |
232
+ | `className` | `string` | No | — | Additional CSS class |
233
+
234
+ **Key features:**
235
+ - Wraps `Card` + `IcoText` composite
236
+ - Linked mode: uses `href` on heading `<a>`, card shell is non-interactive
237
+ - Interactive shell mode: passes `onClick`/`disabled` to `Card`
238
+
239
+ ---
240
+
241
+ ### 5b. KPICard
197
242
 
198
- **Variants:** clickable (chevron + arrow icons, cursor pointer) / static / disabled
243
+ **File:** `src/components/kpiCard/KPICard.tsx` · **Public export:** Yes
244
+ **Also exports:** `KPICardProps` type
245
+
246
+ **Use case:** Dense KPI metric tile — label above, prominent value below with optional % suffix and optional children (e.g. a trend indicator). Uses `Card`'s `dense` spacing. Supports optional `onClick` for interactive KPI tiles.
247
+
248
+ | Prop | Type | Required | Default | Description |
249
+ |---|---|---|---|---|
250
+ | `label` | `ReactNode` | Yes | — | Metric label (e.g. "Attendance rate") |
251
+ | `value` | `ReactNode` | Yes | — | Metric value (e.g. `94`) |
252
+ | `isPercentage` | `boolean` | No | `false` | Appends `%` suffix after value |
253
+ | `children` | `ReactNode` | No | — | Additional content (e.g. trend indicator) |
254
+ | `disabled` | `boolean` | No | `false` | Disabled state (interactive only) |
255
+ | `onClick` | `(e: MouseEvent<HTMLElement>) => void` | No | — | Makes card interactive |
256
+ | `aria-label` | `string` | Required with `onClick` | — | Accessible name |
257
+ | `aria-labelledby` | `string` | Required with `onClick` | — | Alternative accessible name |
258
+ | `className` | `string` | No | — | Additional CSS class |
199
259
 
200
260
  **Key features:**
201
- - Renders as `<article>`
202
- - Clickable cards get `tabIndex={0}` for keyboard access
203
- - `aria-label="Card"` hardcoded — consider overriding via `...rest`
261
+ - Wraps `Card` with `spacing="dense"`; passes interaction props via `getCardInteractionProps`
262
+ - CSS: `ds-kpi-card`, `ds-kpi-card__label`, `ds-kpi-card__value`, `ds-kpi-card__suffix`
204
263
 
205
264
  ---
206
265
 
@@ -574,6 +633,74 @@ Component-scoped tokens follow: `--{component}-{state}-{property}` (e.g. `--butt
574
633
 
575
634
  ---
576
635
 
636
+ ### 21b. IcoText
637
+
638
+ **File:** `src/components/icoText/IcoText.tsx` · **Public export:** Yes
639
+ **Also exports:** `IcoTextProps`, `IcoTextHeadingProps`, `IcoTextParagraphProps`, `IcoTextIconProps` types
640
+
641
+ **Use case:** Composite layout pattern — icon on the left, heading and paragraph on the right. Used internally by `ArticleCard`. Use directly when you need an icon + text block without a card shell.
642
+
643
+ **Compound components:**
644
+
645
+ | Sub-component | Renders as | Description |
646
+ |---|---|---|
647
+ | `IcoText` (root) | `<div class="ds-ico-text">` | Container; separates icon children from content children |
648
+ | `IcoText.Icon` | `<Icon>` | Leading icon with `ds-ico-text__icon` class |
649
+ | `IcoText.Heading` | `<h4 class="ds-ico-text__heading">` | Heading text |
650
+ | `IcoText.Paragraph` | `<p class="ds-ico-text__paragraph">` | Body text |
651
+
652
+ **`IcoText.Icon` props:**
653
+
654
+ | Prop | Type | Required | Default | Description |
655
+ |---|---|---|---|---|
656
+ | `name` | `IconName` | Yes | — | Icon identifier |
657
+ | `color` | `string` | No | — | Icon color |
658
+ | `screenReaderText` | `string` | No | — | SR-only text for icon |
659
+ | `size` | `12 \| 16 \| 24` | No | `24` | Icon size |
660
+ | `className` | `string` | No | — | Additional CSS class |
661
+
662
+ **Key features:**
663
+ - Root separates `IcoText.Icon` children into a flex-left slot; all other children go into `ds-ico-text__content`
664
+ - `IcoText.Heading` and `IcoText.Paragraph` accept all standard HTML heading/paragraph attributes
665
+
666
+ ---
667
+
668
+ ### 21c. KVPList
669
+
670
+ **File:** `src/components/kvpList/KVPList.tsx` · **Public export:** Yes
671
+ **Also exports:** `KVPListProps`, `KVPListRowProps`, `KVPListTermProps`, `KVPListDefinitionProps` types
672
+
673
+ **Use case:** Key/value pair list for detail panels, profiles, and data summary displays. Uses semantic `<dl>`/`<dt>`/`<dd>` markup for accessibility. Supports vertical and horizontal row layouts, bold/neutral value prominence, and optional `%` suffix.
674
+
675
+ **Compound components:**
676
+
677
+ | Sub-component | Renders as | Description |
678
+ |---|---|---|
679
+ | `KVPList` (root) | `<div class="ds-kvp-list">` | Container; auto-adds `role="group"` when `aria-label`/`aria-labelledby` provided |
680
+ | `KVPList.Row` | `<dl class="ds-kvp-list__row">` | Single key/value row |
681
+ | `KVPList.Term` | `<dt class="ds-kvp-list__term">` | The key/label |
682
+ | `KVPList.Definition` | `<dd class="ds-kvp-list__description">` | The value |
683
+
684
+ **`KVPList.Row` props:**
685
+
686
+ | Prop | Type | Default | Description |
687
+ |---|---|---|---|
688
+ | `orientation` | `'horizontal' \| 'vertical'` | `'vertical'` | Stacking direction of term + definition |
689
+
690
+ **`KVPList.Definition` props:**
691
+
692
+ | Prop | Type | Default | Description |
693
+ |---|---|---|---|
694
+ | `isRow` | `boolean` | `false` | Adds `ds-kvp-list__description--row` modifier |
695
+ | `isPercentage` | `boolean` | `false` | Appends `%` suffix in `<span class="ds-kvp-list__suffix">` |
696
+ | `prominence` | `'neutral' \| 'strong'` | `'neutral'` | Controls text weight/color emphasis |
697
+
698
+ **Key features:**
699
+ - All sub-components accept `className` and standard HTML element attributes via `...rest`
700
+ - `KVPList` root adds `role="group"` automatically when `aria-label` or `aria-labelledby` is present
701
+
702
+ ---
703
+
577
704
  ### 22. Modal
578
705
 
579
706
  **Files:** `src/components/modal/Modal.tsx` + `src/components/modal/modalManager/ModalManager.tsx` · **Public export:** Yes (both)
@@ -1086,7 +1213,9 @@ Component-scoped tokens follow: `--{component}-{state}-{property}` (e.g. `--butt
1086
1213
  | `AvatarGroup` | Yes | ascending/descending; overflow count; items or children API | — |
1087
1214
  | `Banner` | Yes | level: info/neutral/warning/destructive | CVA |
1088
1215
  | `Button` | Yes | 7 variants; 2 sizes; icon-only; borderless; error | — |
1089
- | `Card` | Yes | clickable/static/disabled; optional tag | — |
1216
+ | `Card` | Yes | static/interactive (`onClick`)/disabled; `spacing`: default/dense | — |
1217
+ | `ArticleCard` | Yes | linked (`href`) or interactive shell (`onClick`); icon/title/paragraph/tag | — |
1218
+ | `KPICard` | Yes | label+value metric tile; `isPercentage`; optional interactive | — |
1090
1219
  | `DatePicker` | Yes | any date-fns format; error state | Radix Popover, react-day-picker |
1091
1220
  | `Dropdown` | Yes | compound: Trigger/Content/Item/SelectItem/Separator/Group | Radix DropdownMenu |
1092
1221
  | `EditableText` | Yes | single-line/multiline; controlled editing | — |
@@ -1103,6 +1232,8 @@ Component-scoped tokens follow: `--{component}-{state}-{property}` (e.g. `--butt
1103
1232
  | `ColourPickerDropdown` | Yes | error state; controlled color | @uiw/react-color |
1104
1233
  | `Heading` | Yes | level: 1–4 (h1–h4) | — |
1105
1234
  | `Icon` | Yes | ~100 icons; sizes 12/16/24; custom color | lucide-react |
1235
+ | `IcoText` | Yes | compound: Icon/Heading/Paragraph; icon-left layout | — |
1236
+ | `KVPList` | Yes | compound: Row/Term/Definition; `orientation`; `prominence`; `isPercentage` | — |
1106
1237
  | `Modal` + `ModalManager` | Yes | compound sub-components; PubSub imperative control | Radix Dialog |
1107
1238
  | `Pill` | Yes | toggle / checkbox modes | — |
1108
1239
  | `Progress` | Yes | value/max controlled | Radix Progress |
@@ -1,18 +1,144 @@
1
1
  import type { StoryObj } from '@storybook/react-vite';
2
+ import { ArticleCard } from './ArticleCard';
3
+ declare function ArticleCardDocsPage(): import("react/jsx-runtime").JSX.Element;
2
4
  declare const meta: {
3
5
  title: string;
4
6
  component: (props: import("./ArticleCard").ArticleCardProps) => React.JSX.Element;
7
+ tags: string[];
8
+ parameters: {
9
+ layout: string;
10
+ docs: {
11
+ page: typeof ArticleCardDocsPage;
12
+ };
13
+ };
14
+ argTypes: {
15
+ title: {
16
+ control: "text";
17
+ description: string;
18
+ table: {
19
+ type: {
20
+ summary: string;
21
+ };
22
+ };
23
+ };
24
+ paragraph: {
25
+ control: "text";
26
+ description: string;
27
+ table: {
28
+ type: {
29
+ summary: string;
30
+ };
31
+ };
32
+ };
33
+ icon: {
34
+ control: {
35
+ type: "select";
36
+ };
37
+ options: (string | undefined)[];
38
+ description: string;
39
+ table: {
40
+ type: {
41
+ summary: string;
42
+ };
43
+ };
44
+ };
45
+ iconColor: {
46
+ control: "text";
47
+ description: string;
48
+ table: {
49
+ type: {
50
+ summary: string;
51
+ };
52
+ };
53
+ };
54
+ iconScreenReaderText: {
55
+ control: "text";
56
+ description: string;
57
+ table: {
58
+ type: {
59
+ summary: string;
60
+ };
61
+ };
62
+ };
63
+ tagText: {
64
+ control: "text";
65
+ description: string;
66
+ table: {
67
+ type: {
68
+ summary: string;
69
+ };
70
+ };
71
+ };
72
+ tagColor: {
73
+ control: {
74
+ type: "select";
75
+ };
76
+ options: (string | undefined)[];
77
+ description: string;
78
+ table: {
79
+ type: {
80
+ summary: string;
81
+ };
82
+ };
83
+ };
84
+ disabled: {
85
+ control: "boolean";
86
+ description: string;
87
+ table: {
88
+ type: {
89
+ summary: string;
90
+ };
91
+ defaultValue: {
92
+ summary: string;
93
+ };
94
+ };
95
+ };
96
+ onClick: {
97
+ control: false;
98
+ description: string;
99
+ table: {
100
+ type: {
101
+ summary: string;
102
+ };
103
+ };
104
+ };
105
+ 'aria-label': {
106
+ control: "text";
107
+ description: string;
108
+ table: {
109
+ type: {
110
+ summary: string;
111
+ };
112
+ };
113
+ };
114
+ href: {
115
+ control: "text";
116
+ description: string;
117
+ table: {
118
+ type: {
119
+ summary: string;
120
+ };
121
+ };
122
+ };
123
+ className: {
124
+ control: false;
125
+ description: string;
126
+ table: {
127
+ type: {
128
+ summary: string;
129
+ };
130
+ };
131
+ };
132
+ };
5
133
  };
6
- type Story = StoryObj<typeof meta>;
7
- export declare const CardWithTitleAndParagraph: Story;
8
- export declare const CardWithTitleParagraphAndIcon: Story;
9
- export declare const TheEverythingCard: Story;
10
- export declare const CardWithTitleParagraphAndTag: Story;
11
- export declare const CardWithTitleAndIcon: Story;
12
- export declare const CardWithParagraph: Story;
13
- export declare const ClickableDisabledCard: Story;
14
- export declare const UnclickableCard: Story;
15
- export declare const TextOnly: Story;
16
- export declare const LinkedArticle: Story;
17
134
  export default meta;
135
+ type Story = StoryObj<typeof ArticleCard>;
136
+ export declare const Default: Story;
137
+ export declare const Static: Story;
138
+ export declare const WithTag: Story;
139
+ export declare const FullComposition: Story;
140
+ export declare const LinkedMode: Story;
141
+ export declare const InteractiveShell: Story;
142
+ export declare const Disabled: Story;
143
+ export declare const LinkedDisabled: Story;
18
144
  //# sourceMappingURL=ArticleCard.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArticleCard.stories.d.ts","sourceRoot":"","sources":["../../../src/components/articleCard/ArticleCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5D,QAAA,MAAM,IAAI;;;CAG0B,CAAC;AAErC,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,yBAAyB,EAAE,KASvC,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,KAU3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAY/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,KAW1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KASlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAQ/B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAYnC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAgB3B,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"ArticleCard.stories.d.ts","sourceRoot":"","sources":["../../../src/components/articleCard/ArticleCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiF5C,iBAAS,mBAAmB,4CAmB3B;AAMD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE0B,CAAC;AAErC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAkD1C,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAmCpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAuCrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KA6C7B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAyCxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAuC9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAyCtB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA+B5B,CAAC"}