@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
@@ -1,777 +0,0 @@
1
- {
2
- "branchName": "feature/MIS-70118-storybook-skill",
3
- "userStories": [
4
- {
5
- "id": "STORY-010",
6
- "title": "Write stories for Button",
7
- "acceptanceCriteria": [
8
- "Run /write-stories Button",
9
- "All 4 Golden Girls agents called (Sophia, Blanche, Rose, Dorothy)",
10
- "Rich component description with When to use / When NOT to use / Design guidance / Accessibility",
11
- "argTypes populated for all key props with descriptions, controls, and defaults",
12
- "Interactive Default story wired to Controls",
13
- "Stories for every variant (primary, secondary, tertiary, primary-destructive, secondary-destructive, tertiary-destructive, ghost)",
14
- "Disabled state story",
15
- "AllVariants overview story",
16
- "Per-story descriptions on every story",
17
- "Design guidance from Confluence incorporated (page 2216957127)",
18
- "Type check and lint pass"
19
- ],
20
- "priority": 1,
21
- "passes": true,
22
- "notes": "Button is the most-used component in the system. Its stories currently have argTypes but no component description, no story descriptions, and no design guidance. High traffic docs page — maximum impact."
23
- },
24
- {
25
- "id": "STORY-020",
26
- "title": "Write stories for Badge",
27
- "acceptanceCriteria": [
28
- "Run /write-stories Badge",
29
- "All 4 Golden Girls agents called",
30
- "Rich component description",
31
- "argTypes with descriptions for size, colour, children, a11yLabel",
32
- "Interactive Default story wired to Controls",
33
- "Stories for all 7 colour variants and 3 sizes",
34
- "Accessibility story for a11yLabel",
35
- "AllVariants overview story",
36
- "Per-story descriptions on every story",
37
- "Story wrapper styles use CSS tokens not hardcoded values",
38
- "Type check and lint pass"
39
- ],
40
- "priority": 1,
41
- "passes": true,
42
- "notes": "Badge already has a withDescription helper and decent structure but no component description, no argType descriptions, and wrappers use hardcoded '1rem' instead of tokens. Upgrade to full write-stories standard."
43
- },
44
- {
45
- "id": "STORY-030",
46
- "title": "Write stories for Banner",
47
- "acceptanceCriteria": [
48
- "Run /write-stories Banner",
49
- "All 4 Golden Girls agents called",
50
- "Rich component description with When to use / When NOT to use",
51
- "argTypes with descriptions for level, text, title, icon, hideIcon, buttonText, buttonOnClick",
52
- "Interactive Default story wired to Controls",
53
- "Stories for all 4 levels (neutral, info, warning, destructive)",
54
- "Stories for optional content combos (WithTitle, WithButton, WithTitleAndButton, TitleOnly)",
55
- "ContentGuidelines story showing ideal vs edge case content length",
56
- "AllVariants overview story",
57
- "Per-story descriptions on every story",
58
- "Design guidance from Confluence incorporated (page 2216762167)",
59
- "Type check and lint pass"
60
- ],
61
- "priority": 1,
62
- "passes": true,
63
- "notes": "Banner has good story coverage for variants but zero descriptions, zero argType descriptions, and no Confluence design guidance. The Confluence page (2216762167) has rich guidance on types, colours, content length, and icon usage."
64
- },
65
- {
66
- "id": "STORY-040",
67
- "title": "Write stories for Icon",
68
- "acceptanceCriteria": [
69
- "Run /write-stories Icon",
70
- "All 4 Golden Girls agents called",
71
- "Rich component description",
72
- "argTypes with descriptions for name, size, className",
73
- "Interactive Default story with select controls for icon name and size",
74
- "Story showing all available sizes",
75
- "Story showing a curated grid of commonly-used icons",
76
- "Per-story descriptions on every story",
77
- "Type check and lint pass"
78
- ],
79
- "priority": 1,
80
- "passes": true,
81
- "notes": "Icon stories are 30 lines — just a Default with select controls. No autodocs tag, no component description, no size comparison, no icon gallery. The allowedIcons import has the full icon set."
82
- },
83
- {
84
- "id": "STORY-050",
85
- "title": "Write stories for Heading",
86
- "acceptanceCriteria": [
87
- "Run /write-stories Heading",
88
- "All 4 Golden Girls agents called",
89
- "Rich component description",
90
- "argTypes with descriptions for all props",
91
- "Interactive Default story wired to Controls",
92
- "Stories for all heading levels and variants",
93
- "AllVariants overview story",
94
- "Per-story descriptions on every story",
95
- "Type check and lint pass"
96
- ],
97
- "priority": 1,
98
- "passes": true,
99
- "notes": "Heading is 142 lines — has some content but needs the full write-stories treatment with component description and design guidance."
100
- },
101
- {
102
- "id": "STORY-060",
103
- "title": "Write stories for Tag",
104
- "acceptanceCriteria": [
105
- "Run /write-stories Tag",
106
- "All 4 Golden Girls agents called",
107
- "Rich component description with When to use vs Badge vs Pill",
108
- "argTypes with descriptions for all props",
109
- "Interactive Default story wired to Controls",
110
- "Stories for all variants and sizes",
111
- "Dismissible tag story with onDismiss handler",
112
- "AllVariants overview story",
113
- "Per-story descriptions on every story",
114
- "Type check and lint pass"
115
- ],
116
- "priority": 1,
117
- "passes": true,
118
- "notes": "Tag is 98 lines. Important to differentiate from Badge and Pill in the component description."
119
- },
120
- {
121
- "id": "STORY-070",
122
- "title": "Write stories for Pill",
123
- "acceptanceCriteria": [
124
- "Run /write-stories Pill",
125
- "All 4 Golden Girls agents called",
126
- "Rich component description with When to use vs Tag vs Badge",
127
- "argTypes with descriptions for text, checkbox, initialValue, onclick",
128
- "Interactive Default story wired to Controls",
129
- "Stories for checkbox variant and pre-checked state",
130
- "AllVariants overview story",
131
- "Per-story descriptions on every story",
132
- "Type check and lint pass"
133
- ],
134
- "priority": 1,
135
- "passes": true,
136
- "notes": "Pill is 33 lines and minimal. Story names are currently camelCase (withCheckbox, preChecked) — should be PascalCase per convention."
137
- },
138
- {
139
- "id": "STORY-080",
140
- "title": "Write stories for Dot",
141
- "acceptanceCriteria": [
142
- "Run /write-stories Dot",
143
- "All 4 Golden Girls agents called",
144
- "Rich component description",
145
- "argTypes with descriptions for all props",
146
- "Interactive Default story wired to Controls",
147
- "Stories for all colour/variant options",
148
- "AllVariants overview story",
149
- "Per-story descriptions on every story",
150
- "Type check and lint pass"
151
- ],
152
- "priority": 1,
153
- "passes": true,
154
- "notes": "Dot is 41 lines. Small component but needs the full treatment."
155
- },
156
- {
157
- "id": "STORY-090",
158
- "title": "Write stories for Progress",
159
- "acceptanceCriteria": [
160
- "Run /write-stories Progress",
161
- "All 4 Golden Girls agents called",
162
- "Rich component description",
163
- "argTypes with descriptions for all props",
164
- "Interactive Default story wired to Controls",
165
- "Stories for various progress values (0%, 25%, 50%, 75%, 100%)",
166
- "Stories for different variants/colours if applicable",
167
- "Accessibility story showing aria attributes",
168
- "Per-story descriptions on every story",
169
- "Type check and lint pass"
170
- ],
171
- "priority": 1,
172
- "passes": true,
173
- "notes": "Progress is 90 lines. Needs accessibility documentation especially — progress bars need proper aria-valuenow/aria-valuemin/aria-valuemax."
174
- },
175
- {
176
- "id": "STORY-100",
177
- "title": "Write stories for Separator",
178
- "acceptanceCriteria": [
179
- "Run /write-stories Separator",
180
- "All 4 Golden Girls agents called",
181
- "Rich component description",
182
- "argTypes with descriptions",
183
- "Interactive Default story wired to Controls",
184
- "Stories showing with and without title",
185
- "Per-story descriptions on every story",
186
- "Type check and lint pass"
187
- ],
188
- "priority": 1,
189
- "passes": true,
190
- "notes": "Separator is 15 lines — the most minimal story file in the entire codebase. Just a Default with a hardcoded 'titleValue' string. Needs everything."
191
- },
192
- {
193
- "id": "STORY-110",
194
- "title": "Write stories for FormField",
195
- "acceptanceCriteria": [
196
- "Run /write-stories FormField",
197
- "All 4 Golden Girls agents called",
198
- "Rich component description explaining FormField as the wrapper pattern",
199
- "argTypes with descriptions for all props",
200
- "Interactive Default story wired to Controls",
201
- "Stories showing FormField with different input types",
202
- "Error state story with validation message",
203
- "Required field story",
204
- "WithHelpText story",
205
- "Per-story descriptions on every story",
206
- "Design guidance from Confluence incorporated (page 2216957127)",
207
- "Type check and lint pass"
208
- ],
209
- "priority": 2,
210
- "passes": true,
211
- "notes": "FormField is the wrapper component for all form inputs. 181 lines currently. Critical to document its relationship with child input components."
212
- },
213
- {
214
- "id": "STORY-120",
215
- "title": "Write stories for TextInput",
216
- "acceptanceCriteria": [
217
- "Run /write-stories TextInput",
218
- "All 4 Golden Girls agents called",
219
- "Rich component description",
220
- "argTypes with descriptions",
221
- "Interactive Default story wired to Controls",
222
- "Stories for placeholder, disabled, error, required states",
223
- "Per-story descriptions on every story",
224
- "Type check and lint pass"
225
- ],
226
- "priority": 2,
227
- "passes": true,
228
- "notes": "TextInput is 42 lines. Basic form input — needs error, disabled, required states documented. Completed 2026-04-22: 7 stories (Default, Sizes, States, WithFormField, InputTypes, ControlledWithValidation, WithForwardRef). Key contribution: explicit aria-invalid gotcha on bare TextInput."
229
- },
230
- {
231
- "id": "STORY-130",
232
- "title": "Write stories for NumberInput",
233
- "acceptanceCriteria": [
234
- "Run /write-stories NumberInput",
235
- "All 4 Golden Girls agents called",
236
- "Rich component description",
237
- "argTypes with descriptions",
238
- "Interactive Default story wired to Controls",
239
- "Stories for min/max, step, disabled, error states",
240
- "Per-story descriptions on every story",
241
- "Design guidance from Confluence (page 2216957127 — number inputs section)",
242
- "Type check and lint pass"
243
- ],
244
- "priority": 2,
245
- "passes": true,
246
- "notes": "Completed 2026-04-23: 8 stories (Default, Disabled, WithError, WithMinMax, DecimalStep, SpinnersDisabled, InFormField, ControlledInput). Key contributions: DecimalStep story makes Decimal.js precision benefit concrete with native JS comparison panel; onBlur override gotcha (consumer onBlur silently kills blur-clamping); controlled/uncontrolled trap documented."
247
- },
248
- {
249
- "id": "STORY-140",
250
- "title": "Write stories for TextArea",
251
- "acceptanceCriteria": [
252
- "Run /write-stories TextArea",
253
- "All 4 Golden Girls agents called",
254
- "Rich component description",
255
- "argTypes with descriptions",
256
- "Interactive Default story wired to Controls",
257
- "Stories for placeholder, disabled, error, resize behaviour",
258
- "Per-story descriptions on every story",
259
- "Type check and lint pass"
260
- ],
261
- "priority": 2,
262
- "passes": true,
263
- "notes": "Completed 2026-04-23: 7 stories (Default, WithError, Disabled, FixedHeight, ReadOnly, WithFormField, ControlledWithCharacterCount). Key: autoSize mechanics documented, CSS resize gotcha, no forwardRef, character count with 3-colour token progression (grey→caution→destructive)."
264
- },
265
- {
266
- "id": "STORY-150",
267
- "title": "Write stories for CheckboxInput",
268
- "acceptanceCriteria": [
269
- "Run /write-stories CheckboxInput",
270
- "All 4 Golden Girls agents called",
271
- "Rich component description",
272
- "argTypes with descriptions",
273
- "Interactive Default story wired to Controls",
274
- "Stories for checked, unchecked, indeterminate, disabled, error states",
275
- "Per-story descriptions on every story",
276
- "Type check and lint pass"
277
- ],
278
- "priority": 2,
279
- "passes": true,
280
- "notes": "Completed 2026-04-23: 12 stories (Default, Checked, Indeterminate, DisabledUnchecked, DisabledChecked, DisabledIndeterminate, WithoutLabel, AllStates, InteractiveControlled, SelectAllWithIndeterminate, CheckboxGroupStory, CheckboxGroupDisabled). Key contributions: SelectAllWithIndeterminate is the canonical select-all+indeterminate pattern; controlled-only gotcha documented; aria-checked spread order clarified; CheckboxGroup public API confirmed."
281
- },
282
- {
283
- "id": "STORY-160",
284
- "title": "Write stories for RadioButtonInput",
285
- "acceptanceCriteria": [
286
- "Run /write-stories RadioButtonInput",
287
- "All 4 Golden Girls agents called",
288
- "Rich component description",
289
- "argTypes with descriptions",
290
- "Interactive Default story wired to Controls",
291
- "Stories for selected, disabled, error states",
292
- "Story showing a radio group with multiple options",
293
- "Per-story descriptions on every story",
294
- "Type check and lint pass"
295
- ],
296
- "priority": 2,
297
- "passes": true,
298
- "notes": "Completed 2026-04-24: 10 stories (Default, Checked, Disabled, DisabledChecked, WithError, WithoutLabel, AllStates, RadioGroup, RadioGroupDisabled, RadioGroupWithError). Key contributions: hasError is ARIA-only gotcha (zero visual change to indicator); name is functionally mandatory despite not being TS-required; RadioButtonGroup uses single checkedValue at group level vs CheckboxGroup per-item pattern; fieldset-level disabled via HTMLFieldSetElement props."
299
- },
300
- {
301
- "id": "STORY-170",
302
- "title": "Write stories for SelectDropdown",
303
- "acceptanceCriteria": [
304
- "Run /write-stories SelectDropdown",
305
- "All 4 Golden Girls agents called",
306
- "Rich component description with When to use vs Combobox",
307
- "argTypes with descriptions",
308
- "Interactive Default story wired to Controls",
309
- "Stories for single select, multi-select, disabled, error, searchable",
310
- "Per-story descriptions on every story",
311
- "Type check and lint pass"
312
- ],
313
- "priority": 2,
314
- "passes": false,
315
- "notes": "SelectDropdown is 200 lines. Important to differentiate from Combobox and Dropdown in the component description."
316
- },
317
- {
318
- "id": "STORY-180",
319
- "title": "Write stories for ColourPickerDropdown",
320
- "acceptanceCriteria": [
321
- "Run /write-stories ColourPickerDropdown",
322
- "All 4 Golden Girls agents called",
323
- "Rich component description",
324
- "argTypes with descriptions",
325
- "Interactive Default story wired to Controls",
326
- "Per-story descriptions on every story",
327
- "Type check and lint pass"
328
- ],
329
- "priority": 2,
330
- "passes": false,
331
- "notes": "ColourPickerDropdown is 29 lines. Minimal."
332
- },
333
- {
334
- "id": "STORY-190",
335
- "title": "Write stories for TimeInput",
336
- "acceptanceCriteria": [
337
- "Run /write-stories TimeInput",
338
- "All 4 Golden Girls agents called",
339
- "Rich component description",
340
- "argTypes with descriptions",
341
- "Interactive Default story wired to Controls",
342
- "Stories for different time formats, disabled, error states",
343
- "Per-story descriptions on every story",
344
- "Design guidance from Confluence (page 2216957127 — date/time section)",
345
- "Type check and lint pass"
346
- ],
347
- "priority": 2,
348
- "passes": false,
349
- "notes": "TimeInput is 170 lines. Confluence page 2216957127 has date/time input guidance."
350
- },
351
- {
352
- "id": "STORY-200",
353
- "title": "Write stories for DatePicker",
354
- "acceptanceCriteria": [
355
- "Run /write-stories DatePicker",
356
- "All 4 Golden Girls agents called",
357
- "Rich component description with When to use vs DateTimePicker",
358
- "argTypes with descriptions",
359
- "Interactive Default story wired to Controls",
360
- "Stories for disabled, error, min/max date, pre-selected date",
361
- "Per-story descriptions on every story",
362
- "Design guidance from Confluence (pages 2216957127 and 2216891079)",
363
- "Type check and lint pass"
364
- ],
365
- "priority": 2,
366
- "passes": false,
367
- "notes": "DatePicker is 105 lines. Confluence has guidance on date/time inputs (2216957127) and popup behaviour (2216891079)."
368
- },
369
- {
370
- "id": "STORY-210",
371
- "title": "Write stories for DateTimePicker",
372
- "acceptanceCriteria": [
373
- "Run /write-stories DateTimePicker",
374
- "All 4 Golden Girls agents called",
375
- "Rich component description with When to use vs DatePicker",
376
- "argTypes with descriptions",
377
- "Interactive Default story wired to Controls",
378
- "Stories for disabled, error, pre-selected datetime",
379
- "Per-story descriptions on every story",
380
- "Design guidance from Confluence (pages 2216957127 and 2216891079)",
381
- "Type check and lint pass"
382
- ],
383
- "priority": 2,
384
- "passes": false,
385
- "notes": "DateTimePicker is 202 lines. Builds on DatePicker — document the relationship."
386
- },
387
- {
388
- "id": "STORY-220",
389
- "title": "Write stories for Fieldset",
390
- "acceptanceCriteria": [
391
- "Run /write-stories Fieldset",
392
- "All 4 Golden Girls agents called",
393
- "Rich component description explaining when to group fields",
394
- "argTypes with descriptions",
395
- "Interactive Default story wired to Controls",
396
- "Stories showing fieldset with multiple form fields",
397
- "Per-story descriptions on every story",
398
- "Type check and lint pass"
399
- ],
400
- "priority": 2,
401
- "passes": false,
402
- "notes": "Fieldset is 89 lines. Wrapper for grouping related form fields."
403
- },
404
- {
405
- "id": "STORY-230",
406
- "title": "Write stories for Label",
407
- "acceptanceCriteria": [
408
- "Run /write-stories Label",
409
- "All 4 Golden Girls agents called",
410
- "Rich component description",
411
- "argTypes with descriptions",
412
- "Interactive Default story wired to Controls",
413
- "Stories for required indicator, different label sizes if applicable",
414
- "Per-story descriptions on every story",
415
- "Type check and lint pass"
416
- ],
417
- "priority": 2,
418
- "passes": false,
419
- "notes": "Label is 15 lines — tied for most minimal. Used by FormField internally but also standalone."
420
- },
421
- {
422
- "id": "STORY-240",
423
- "title": "Write stories for SearchBar",
424
- "acceptanceCriteria": [
425
- "Run /write-stories SearchBar",
426
- "All 4 Golden Girls agents called",
427
- "Rich component description with When to use vs Combobox",
428
- "argTypes with descriptions",
429
- "Interactive Default story wired to Controls",
430
- "Stories for placeholder, disabled, with clear button, controlled",
431
- "Per-story descriptions on every story",
432
- "Type check and lint pass"
433
- ],
434
- "priority": 2,
435
- "passes": false,
436
- "notes": "SearchBar is 86 lines. Differentiate from Combobox in description."
437
- },
438
- {
439
- "id": "STORY-250",
440
- "title": "Write stories for EditableText",
441
- "acceptanceCriteria": [
442
- "Run /write-stories EditableText",
443
- "All 4 Golden Girls agents called",
444
- "Rich component description",
445
- "argTypes with descriptions",
446
- "Interactive Default story wired to Controls",
447
- "Stories for edit mode, read-only, validation, different text types",
448
- "Per-story descriptions on every story",
449
- "Type check and lint pass"
450
- ],
451
- "priority": 2,
452
- "passes": false,
453
- "notes": "EditableText is 136 lines. Inline editing component — needs interactive stories showing the edit/view toggle."
454
- },
455
- {
456
- "id": "STORY-260",
457
- "title": "Write stories for Combobox",
458
- "acceptanceCriteria": [
459
- "Run /write-stories Combobox",
460
- "All 4 Golden Girls agents called",
461
- "Rich component description with When to use vs SelectDropdown vs SearchBar",
462
- "Compound component docs page if applicable (Combobox.Trigger, Combobox.ButtonTrigger, Combobox.Listbox)",
463
- "argTypes with descriptions",
464
- "Interactive Default story wired to Controls",
465
- "Stories for single select, multi-select, async search, grouped options",
466
- "Per-story descriptions on every story",
467
- "Type check and lint pass"
468
- ],
469
- "priority": 2,
470
- "passes": false,
471
- "notes": "Combobox is 358 lines and already has a basic description.component. It has sub-components (Trigger, ButtonTrigger, Listbox) so may need the compound component docs page pattern. Has existing mock data in mocks/comboboxStoryOptions."
472
- },
473
- {
474
- "id": "STORY-270",
475
- "title": "Write stories for Toggle",
476
- "acceptanceCriteria": [
477
- "Run /write-stories Toggle",
478
- "All 4 Golden Girls agents called",
479
- "Rich component description with When to use vs Checkbox",
480
- "argTypes with descriptions (already decent — verify and enhance)",
481
- "Interactive Default story wired to Controls",
482
- "All existing stories preserved and enhanced with design guidance",
483
- "Per-story descriptions on every story",
484
- "Story wrapper styles use ds-text class and CSS tokens",
485
- "Type check and lint pass"
486
- ],
487
- "priority": 2,
488
- "passes": false,
489
- "notes": "Toggle is already 239 lines with comprehensive JSDoc and argTypes — but it wasn't done through write-stories so it lacks Confluence design guidance, the ds-text wrapper convention, and proper token usage in inline styles (uses hardcoded '12px', '14px', '8px'). Lowest priority in Tier 2."
490
- },
491
- {
492
- "id": "STORY-275",
493
- "title": "Write documentation story for PopupParentContext",
494
- "acceptanceCriteria": [
495
- "Create src/utils/PopupParentContext.stories.tsx (or appropriate path for a utility)",
496
- "Storybook title: 'Utils/PopupParentContext'",
497
- "tags: ['autodocs'] in meta",
498
- "Rich description explaining what PopupParentContext is, why it exists, and when consumers need it",
499
- "Description lists ALL components that use it: Dropdown, Modal, Tooltip, DatePicker, DateTimePicker, Combobox, SlideoverManager",
500
- "Default story showing the problem: a floating element clipped by overflow:hidden without context",
501
- "WithCustomContainer story showing a ref-based provider that re-parents portals into a specific container",
502
- "Per-story descriptions explaining each scenario",
503
- "Realistic Arbor-style examples (e.g. a modal inside a scrollable panel)",
504
- "Type check and lint pass"
505
- ],
506
- "priority": 3,
507
- "passes": false,
508
- "notes": "PopupParentContext is a React context, NOT a component — /write-stories won't work here. This needs a manually authored documentation story. It's exported from src/utils/PopupParentContext.ts and consumed by Dropdown, Modal, Tooltip, DatePicker, DateTimePicker, Combobox, SlideoverManager, and Table column filters. The context holds a RefObject<HTMLElement | null> that controls where portalled floating elements render. Default is getDefaultPopupParent(). Consumers need this when rendering floating components inside containers with overflow:hidden or specific z-index stacking contexts."
509
- },
510
- {
511
- "id": "STORY-280",
512
- "title": "Write stories for Modal",
513
- "acceptanceCriteria": [
514
- "Run /write-stories Modal",
515
- "All 4 Golden Girls agents called",
516
- "Compound component docs page with sub-component prop tables (Modal.Body, Modal.Footer)",
517
- "Rich component description with When to use vs Slideover vs Dropdown",
518
- "argTypes with descriptions for open, closeHandler, title, size, etc.",
519
- "Interactive Default story with useState toggle",
520
- "Stories for different sizes, with/without footer, delete confirmation pattern",
521
- "Per-story descriptions on every story",
522
- "Design guidance from Confluence (pages 2216762125 and 2216891079)",
523
- "Type check and lint pass"
524
- ],
525
- "priority": 3,
526
- "passes": false,
527
- "notes": "Modal is 37 lines — the MOST HEINOUS offender for a compound component. Has Modal.Body and Modal.Footer sub-components that need prop tables. Confluence pages 2216762125 (Modals) and 2216891079 (Popup vs Modal vs Slideover) have rich design guidance. This is where the write-stories compound component pattern will shine brightest."
528
- },
529
- {
530
- "id": "STORY-290",
531
- "title": "Write stories for ModalManager",
532
- "acceptanceCriteria": [
533
- "Run /write-stories ModalManager",
534
- "All 4 Golden Girls agents called",
535
- "Rich component description explaining the manager pattern vs raw Modal",
536
- "argTypes with descriptions",
537
- "Interactive Default story showing programmatic open/close via ModalUtils",
538
- "Stories for different modal configurations via the manager",
539
- "Per-story descriptions on every story",
540
- "Design guidance from Confluence incorporated",
541
- "Type check and lint pass"
542
- ],
543
- "priority": 3,
544
- "passes": false,
545
- "notes": "ModalManager is 497 lines — has content but needs the full write-stories treatment. Uses ModalUtils and PubSub pattern which needs clear documentation."
546
- },
547
- {
548
- "id": "STORY-300",
549
- "title": "Write stories for Toast",
550
- "acceptanceCriteria": [
551
- "Run /write-stories Toast",
552
- "All 4 Golden Girls agents called",
553
- "Compound component docs page with sub-component prop tables (Toast.Provider, Toast.Viewport)",
554
- "Rich component description with When to use vs Banner",
555
- "argTypes with descriptions for variant and other key props",
556
- "Interactive Default story with useState toggle",
557
- "Stories for all 4 variants (information, success, warning, danger)",
558
- "ContentGuidelines story showing ideal (1 line) vs acceptable (2 lines) vs too long",
559
- "AllVariants overview story",
560
- "Per-story descriptions on every story",
561
- "Design guidance from Confluence incorporated (page 2216957106)",
562
- "Type check and lint pass"
563
- ],
564
- "priority": 3,
565
- "passes": false,
566
- "notes": "Toast is 113 lines, has basic description.component but it just mentions Radix docs. Confluence page 2216957106 has rich guidance: max 2 lines (ideally 1), icon alignment rules. The Radix compound component pattern (Toast.Provider, Toast.Viewport) needs proper sub-component prop tables."
567
- },
568
- {
569
- "id": "STORY-310",
570
- "title": "Write stories for Tabs",
571
- "acceptanceCriteria": [
572
- "Run /write-stories Tabs",
573
- "All 4 Golden Girls agents called",
574
- "Rich component description",
575
- "argTypes with descriptions",
576
- "Interactive Default story wired to Controls",
577
- "Stories for different tab counts, disabled tabs, controlled tabs",
578
- "Per-story descriptions on every story",
579
- "Type check and lint pass"
580
- ],
581
- "priority": 3,
582
- "passes": false,
583
- "notes": "Tabs is 92 lines. Check if this is a compound component with sub-components that need the custom docs page pattern."
584
- },
585
- {
586
- "id": "STORY-320",
587
- "title": "Write stories for TabsItem",
588
- "acceptanceCriteria": [
589
- "Run /write-stories TabsItem",
590
- "All 4 Golden Girls agents called",
591
- "Rich component description explaining relationship to Tabs parent",
592
- "argTypes with descriptions",
593
- "Interactive Default story wired to Controls",
594
- "Per-story descriptions on every story",
595
- "Type check and lint pass"
596
- ],
597
- "priority": 3,
598
- "passes": false,
599
- "notes": "TabsItem is 55 lines. Sub-component of Tabs — consider whether these should be merged into one compound component docs page. Sophia will advise."
600
- },
601
- {
602
- "id": "STORY-330",
603
- "title": "Write stories for Tooltip",
604
- "acceptanceCriteria": [
605
- "Run /write-stories Tooltip",
606
- "All 4 Golden Girls agents called",
607
- "Rich component description with When to use vs TooltipWrapper",
608
- "argTypes with descriptions",
609
- "Interactive Default story",
610
- "Stories for different placements, trigger types, rich content",
611
- "Per-story descriptions on every story",
612
- "Design guidance from Confluence (pages 2216891079 and 2371747857)",
613
- "Type check and lint pass"
614
- ],
615
- "priority": 3,
616
- "passes": false,
617
- "notes": "Tooltip is 35 lines. Confluence pages 2216891079 (popup behaviour) and 2371747857 (tooltip triggers) have guidance. Important to differentiate from TooltipWrapper."
618
- },
619
- {
620
- "id": "STORY-340",
621
- "title": "Write stories for TooltipWrapper",
622
- "acceptanceCriteria": [
623
- "Run /write-stories TooltipWrapper",
624
- "All 4 Golden Girls agents called",
625
- "Rich component description with When to use vs Tooltip",
626
- "argTypes with descriptions",
627
- "Interactive Default story",
628
- "Per-story descriptions on every story",
629
- "Type check and lint pass"
630
- ],
631
- "priority": 3,
632
- "passes": false,
633
- "notes": "TooltipWrapper is 24 lines. Convenience wrapper around Tooltip — document the relationship clearly."
634
- },
635
- {
636
- "id": "STORY-350",
637
- "title": "Write stories for SlideoverManager",
638
- "acceptanceCriteria": [
639
- "Run /write-stories SlideoverManager",
640
- "All 4 Golden Girls agents called",
641
- "Rich component description with When to use vs Modal",
642
- "argTypes with descriptions",
643
- "Interactive Default story with programmatic open/close",
644
- "Stories for different sizes and slide directions",
645
- "Per-story descriptions on every story",
646
- "Design guidance from Confluence (page 2216891079)",
647
- "Type check and lint pass"
648
- ],
649
- "priority": 3,
650
- "passes": false,
651
- "notes": "SlideoverManager is 374 lines. Uses SlideoverUtils and PubSub pattern. Confluence page 2216891079 has guidance on when to use Slideover vs Modal."
652
- },
653
- {
654
- "id": "STORY-360",
655
- "title": "Write stories for Card",
656
- "acceptanceCriteria": [
657
- "Run /write-stories Card",
658
- "All 4 Golden Girls agents called",
659
- "Rich component description",
660
- "argTypes with descriptions",
661
- "Interactive Default story wired to Controls",
662
- "Stories for different card layouts and content types",
663
- "Per-story descriptions on every story",
664
- "Type check and lint pass"
665
- ],
666
- "priority": 4,
667
- "passes": false,
668
- "notes": "Card is 99 lines. General layout container."
669
- },
670
- {
671
- "id": "STORY-370",
672
- "title": "Write stories for Row",
673
- "acceptanceCriteria": [
674
- "Run /write-stories Row",
675
- "All 4 Golden Girls agents called",
676
- "Rich component description",
677
- "argTypes with descriptions",
678
- "Interactive Default story wired to Controls",
679
- "Stories for different row configurations",
680
- "Per-story descriptions on every story",
681
- "Type check and lint pass"
682
- ],
683
- "priority": 4,
684
- "passes": false,
685
- "notes": "Row is 85 lines. Layout component."
686
- },
687
- {
688
- "id": "STORY-380",
689
- "title": "Write stories for Section",
690
- "acceptanceCriteria": [
691
- "Run /write-stories Section",
692
- "All 4 Golden Girls agents called",
693
- "Rich component description",
694
- "argTypes with descriptions",
695
- "Interactive Default story wired to Controls",
696
- "Stories for section with header, header link, collapsible",
697
- "Per-story descriptions on every story",
698
- "Design guidance from Confluence (page 2217056643)",
699
- "Type check and lint pass"
700
- ],
701
- "priority": 4,
702
- "passes": false,
703
- "notes": "Section is 90 lines. Confluence page 2217056643 has section header link style guidance."
704
- },
705
- {
706
- "id": "STORY-390",
707
- "title": "Write stories for Avatar",
708
- "acceptanceCriteria": [
709
- "Run /write-stories Avatar",
710
- "All 4 Golden Girls agents called",
711
- "Rich component description with When to use vs AvatarGroup vs SingleUser",
712
- "argTypes with descriptions",
713
- "Interactive Default story wired to Controls",
714
- "Stories for all sizes, with/without image, initials fallback",
715
- "AllVariants overview story",
716
- "Per-story descriptions on every story",
717
- "Type check and lint pass"
718
- ],
719
- "priority": 4,
720
- "passes": false,
721
- "notes": "Avatar is 92 lines. Part of the user identity component family — document relationship to AvatarGroup and SingleUser."
722
- },
723
- {
724
- "id": "STORY-400",
725
- "title": "Write stories for AvatarGroup",
726
- "acceptanceCriteria": [
727
- "Run /write-stories AvatarGroup",
728
- "All 4 Golden Girls agents called",
729
- "Rich component description with When to use vs individual Avatar",
730
- "argTypes with descriptions",
731
- "Interactive Default story wired to Controls",
732
- "Stories for different group sizes, overflow indicator, max count",
733
- "Per-story descriptions on every story",
734
- "Type check and lint pass"
735
- ],
736
- "priority": 4,
737
- "passes": false,
738
- "notes": "AvatarGroup is 218 lines. Shows a collection of Avatars with overflow."
739
- },
740
- {
741
- "id": "STORY-410",
742
- "title": "Write stories for SingleUser",
743
- "acceptanceCriteria": [
744
- "Run /write-stories SingleUser",
745
- "All 4 Golden Girls agents called",
746
- "Rich component description with When to use vs Avatar",
747
- "argTypes with descriptions",
748
- "Interactive Default story wired to Controls",
749
- "Stories for different sizes and content configurations",
750
- "Per-story descriptions on every story",
751
- "Type check and lint pass"
752
- ],
753
- "priority": 4,
754
- "passes": false,
755
- "notes": "SingleUser is 63 lines. Combines Avatar with user details — document the relationship."
756
- },
757
- {
758
- "id": "STORY-430",
759
- "title": "Write stories for Table",
760
- "acceptanceCriteria": [
761
- "Run /write-stories Table",
762
- "All 4 Golden Girls agents called",
763
- "Rich component description explaining AG Grid wrapper pattern",
764
- "argTypes with descriptions for key Table props",
765
- "Interactive Default story wired to Controls",
766
- "Stories for sorting, filtering, pagination, custom cell renderers",
767
- "Documentation of GridApiContext usage pattern",
768
- "Per-story descriptions on every story",
769
- "Design guidance from Confluence (page 2371747857 — table row heights)",
770
- "Type check and lint pass"
771
- ],
772
- "priority": 5,
773
- "passes": false,
774
- "notes": "Table is the BEAST — 1412 lines of AG Grid wrapper stories. Already has a lot of content but needs the full write-stories treatment with proper component description, design guidance, and argTypes. Confluence page 2371747857 has table row height guidance. This is the hardest component to document because of AG Grid's complexity. Save it for last. NOTE: two new sub-components added in main (2026-04-22): Table.TableControls (composed header bar with search/bulk-actions/hide-columns/settings/undo-redo/expand/download/help) and CheckboxCellRenderer (dsCheckboxCellRenderer, for editable boolean cells). Stories must cover both."
775
- }
776
- ]
777
- }