@arbor-education/design-system.components 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/.gather/skills/write-stories/SKILL.md +207 -271
  2. package/.storybook/preview.ts +5 -0
  3. package/CHANGELOG.md +27 -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/number/NumberInput.d.ts.map +1 -1
  60. package/dist/components/formField/inputs/number/NumberInput.js +14 -2
  61. package/dist/components/formField/inputs/number/NumberInput.js.map +1 -1
  62. package/dist/components/formField/inputs/number/NumberInput.test.js +21 -0
  63. package/dist/components/formField/inputs/number/NumberInput.test.js.map +1 -1
  64. package/dist/components/formField/inputs/radio/RadioButtonGroup.d.ts +6 -2
  65. package/dist/components/formField/inputs/radio/RadioButtonGroup.d.ts.map +1 -1
  66. package/dist/components/formField/inputs/radio/RadioButtonGroup.js.map +1 -1
  67. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.d.ts.map +1 -1
  68. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js +61 -49
  69. package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js.map +1 -1
  70. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts +188 -166
  71. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts.map +1 -1
  72. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js +821 -160
  73. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js.map +1 -1
  74. package/dist/components/formField/inputs/time/TimeInput.stories.d.ts +176 -22
  75. package/dist/components/formField/inputs/time/TimeInput.stories.d.ts.map +1 -1
  76. package/dist/components/formField/inputs/time/TimeInput.stories.js +851 -92
  77. package/dist/components/formField/inputs/time/TimeInput.stories.js.map +1 -1
  78. package/dist/components/formField/label/Label.stories.d.ts +54 -5
  79. package/dist/components/formField/label/Label.stories.d.ts.map +1 -1
  80. package/dist/components/formField/label/Label.stories.js +238 -4
  81. package/dist/components/formField/label/Label.stories.js.map +1 -1
  82. package/dist/components/icoText/IcoText.stories.d.ts +32 -6
  83. package/dist/components/icoText/IcoText.stories.d.ts.map +1 -1
  84. package/dist/components/icoText/IcoText.stories.js +309 -14
  85. package/dist/components/icoText/IcoText.stories.js.map +1 -1
  86. package/dist/components/kpiCard/KPICard.stories.d.ts +100 -2
  87. package/dist/components/kpiCard/KPICard.stories.d.ts.map +1 -1
  88. package/dist/components/kpiCard/KPICard.stories.js +354 -10
  89. package/dist/components/kpiCard/KPICard.stories.js.map +1 -1
  90. package/dist/components/kvpList/KVPList.stories.d.ts +57 -4
  91. package/dist/components/kvpList/KVPList.stories.d.ts.map +1 -1
  92. package/dist/components/kvpList/KVPList.stories.js +403 -10
  93. package/dist/components/kvpList/KVPList.stories.js.map +1 -1
  94. package/dist/components/modal/Modal.stories.d.ts +113 -9
  95. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  96. package/dist/components/modal/Modal.stories.js +633 -13
  97. package/dist/components/modal/Modal.stories.js.map +1 -1
  98. package/dist/components/modal/modalManager/ModalManager.stories.d.ts +34 -10
  99. package/dist/components/modal/modalManager/ModalManager.stories.d.ts.map +1 -1
  100. package/dist/components/modal/modalManager/ModalManager.stories.js +463 -85
  101. package/dist/components/modal/modalManager/ModalManager.stories.js.map +1 -1
  102. package/dist/components/pill/Pill.d.ts.map +1 -1
  103. package/dist/components/pill/Pill.js +1 -1
  104. package/dist/components/pill/Pill.js.map +1 -1
  105. package/dist/components/pill/Pill.stories.d.ts.map +1 -1
  106. package/dist/components/pill/Pill.stories.js +11 -13
  107. package/dist/components/pill/Pill.stories.js.map +1 -1
  108. package/dist/components/row/Row.stories.d.ts +1 -2
  109. package/dist/components/row/Row.stories.d.ts.map +1 -1
  110. package/dist/components/row/Row.stories.js +360 -50
  111. package/dist/components/row/Row.stories.js.map +1 -1
  112. package/dist/components/searchBar/SearchBar.stories.d.ts +52 -4
  113. package/dist/components/searchBar/SearchBar.stories.d.ts.map +1 -1
  114. package/dist/components/searchBar/SearchBar.stories.js +428 -36
  115. package/dist/components/searchBar/SearchBar.stories.js.map +1 -1
  116. package/dist/components/section/Section.stories.d.ts +11 -41
  117. package/dist/components/section/Section.stories.d.ts.map +1 -1
  118. package/dist/components/section/Section.stories.js +494 -56
  119. package/dist/components/section/Section.stories.js.map +1 -1
  120. package/dist/components/singleUser/SingleUser.stories.d.ts +5 -4
  121. package/dist/components/singleUser/SingleUser.stories.d.ts.map +1 -1
  122. package/dist/components/singleUser/SingleUser.stories.js +303 -31
  123. package/dist/components/singleUser/SingleUser.stories.js.map +1 -1
  124. package/dist/components/slideoverManager/SlideoverManager.stories.d.ts +32 -11
  125. package/dist/components/slideoverManager/SlideoverManager.stories.d.ts.map +1 -1
  126. package/dist/components/slideoverManager/SlideoverManager.stories.js +380 -84
  127. package/dist/components/slideoverManager/SlideoverManager.stories.js.map +1 -1
  128. package/dist/components/table/DSDefaultColDef.d.ts.map +1 -1
  129. package/dist/components/table/DSDefaultColDef.js +4 -3
  130. package/dist/components/table/DSDefaultColDef.js.map +1 -1
  131. package/dist/components/table/Table.d.ts +7 -1
  132. package/dist/components/table/Table.d.ts.map +1 -1
  133. package/dist/components/table/Table.js +12 -5
  134. package/dist/components/table/Table.js.map +1 -1
  135. package/dist/components/table/Table.stories.d.ts +3 -0
  136. package/dist/components/table/Table.stories.d.ts.map +1 -1
  137. package/dist/components/table/Table.stories.js +445 -3
  138. package/dist/components/table/Table.stories.js.map +1 -1
  139. package/dist/components/table/Table.test.js +184 -0
  140. package/dist/components/table/Table.test.js.map +1 -1
  141. package/dist/components/table/TableFooter.stories.d.ts +49 -0
  142. package/dist/components/table/TableFooter.stories.d.ts.map +1 -0
  143. package/dist/components/table/TableFooter.stories.js +137 -0
  144. package/dist/components/table/TableFooter.stories.js.map +1 -0
  145. package/dist/components/table/TableHeader.stories.d.ts +93 -0
  146. package/dist/components/table/TableHeader.stories.d.ts.map +1 -0
  147. package/dist/components/table/TableHeader.stories.js +176 -0
  148. package/dist/components/table/TableHeader.stories.js.map +1 -0
  149. package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts +44 -0
  150. package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts.map +1 -0
  151. package/dist/components/table/cellEditors/DateCellEditor.stories.js +186 -0
  152. package/dist/components/table/cellEditors/DateCellEditor.stories.js.map +1 -0
  153. package/dist/components/table/cellEditors/NumberCellEditor.d.ts +13 -0
  154. package/dist/components/table/cellEditors/NumberCellEditor.d.ts.map +1 -0
  155. package/dist/components/table/cellEditors/NumberCellEditor.js +35 -0
  156. package/dist/components/table/cellEditors/NumberCellEditor.js.map +1 -0
  157. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts +40 -0
  158. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts.map +1 -0
  159. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js +209 -0
  160. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js.map +1 -0
  161. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts +48 -0
  162. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts.map +1 -0
  163. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js +244 -0
  164. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js.map +1 -0
  165. package/dist/components/table/cellRenderers/CheckboxCellRenderer.d.ts.map +1 -1
  166. package/dist/components/table/cellRenderers/CheckboxCellRenderer.js +3 -1
  167. package/dist/components/table/cellRenderers/CheckboxCellRenderer.js.map +1 -1
  168. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts +64 -0
  169. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts.map +1 -0
  170. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js +241 -0
  171. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js.map +1 -0
  172. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts +55 -0
  173. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts.map +1 -0
  174. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js +245 -0
  175. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js.map +1 -0
  176. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts +67 -0
  177. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts.map +1 -0
  178. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js +221 -0
  179. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js.map +1 -0
  180. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts +75 -0
  181. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts.map +1 -0
  182. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js +270 -0
  183. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js.map +1 -0
  184. package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts +57 -0
  185. package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts.map +1 -0
  186. package/dist/components/table/columnFilters/BooleanFilter.stories.js +198 -0
  187. package/dist/components/table/columnFilters/BooleanFilter.stories.js.map +1 -0
  188. package/dist/components/table/columnFilters/TimeFilter.stories.d.ts +58 -0
  189. package/dist/components/table/columnFilters/TimeFilter.stories.d.ts.map +1 -0
  190. package/dist/components/table/columnFilters/TimeFilter.stories.js +207 -0
  191. package/dist/components/table/columnFilters/TimeFilter.stories.js.map +1 -0
  192. package/dist/components/table/pagination/PaginationPanel.stories.d.ts +113 -0
  193. package/dist/components/table/pagination/PaginationPanel.stories.d.ts.map +1 -0
  194. package/dist/components/table/pagination/PaginationPanel.stories.js +272 -0
  195. package/dist/components/table/pagination/PaginationPanel.stories.js.map +1 -0
  196. package/dist/components/table/tableControls/TableControls.stories.d.ts +151 -0
  197. package/dist/components/table/tableControls/TableControls.stories.d.ts.map +1 -0
  198. package/dist/components/table/tableControls/TableControls.stories.js +356 -0
  199. package/dist/components/table/tableControls/TableControls.stories.js.map +1 -0
  200. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts +27 -1
  201. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts.map +1 -1
  202. package/dist/components/table/tableControls/TableSettingsDropdown.js +53 -26
  203. package/dist/components/table/tableControls/TableSettingsDropdown.js.map +1 -1
  204. package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts +2 -0
  205. package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts.map +1 -0
  206. package/dist/components/table/tableControls/TableSettingsDropdown.test.js +178 -0
  207. package/dist/components/table/tableControls/TableSettingsDropdown.test.js.map +1 -0
  208. package/dist/components/tabs/Tabs.stories.d.ts +22 -4
  209. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  210. package/dist/components/tabs/Tabs.stories.js +398 -22
  211. package/dist/components/tabs/Tabs.stories.js.map +1 -1
  212. package/dist/components/tabs/TabsItem.stories.d.ts +54 -1
  213. package/dist/components/tabs/TabsItem.stories.d.ts.map +1 -1
  214. package/dist/components/tabs/TabsItem.stories.js +61 -9
  215. package/dist/components/tabs/TabsItem.stories.js.map +1 -1
  216. package/dist/components/toast/Toast.stories.d.ts +103 -10
  217. package/dist/components/toast/Toast.stories.d.ts.map +1 -1
  218. package/dist/components/toast/Toast.stories.js +409 -47
  219. package/dist/components/toast/Toast.stories.js.map +1 -1
  220. package/dist/components/toggle/Toggle.stories.d.ts +61 -46
  221. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  222. package/dist/components/toggle/Toggle.stories.js +311 -122
  223. package/dist/components/toggle/Toggle.stories.js.map +1 -1
  224. package/dist/components/tooltip/Tooltip.stories.d.ts +78 -6
  225. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  226. package/dist/components/tooltip/Tooltip.stories.js +413 -7
  227. package/dist/components/tooltip/Tooltip.stories.js.map +1 -1
  228. package/dist/components/tooltip/TooltipWrapper.stories.d.ts +71 -7
  229. package/dist/components/tooltip/TooltipWrapper.stories.d.ts.map +1 -1
  230. package/dist/components/tooltip/TooltipWrapper.stories.js +238 -10
  231. package/dist/components/tooltip/TooltipWrapper.stories.js.map +1 -1
  232. package/dist/index.css +27 -0
  233. package/dist/index.css.map +1 -1
  234. package/dist/index.d.ts +3 -2
  235. package/dist/index.d.ts.map +1 -1
  236. package/dist/index.js +3 -2
  237. package/dist/index.js.map +1 -1
  238. package/dist/utils/PopupParentContext.stories.d.ts +17 -0
  239. package/dist/utils/PopupParentContext.stories.d.ts.map +1 -0
  240. package/dist/utils/PopupParentContext.stories.js +266 -0
  241. package/dist/utils/PopupParentContext.stories.js.map +1 -0
  242. package/dist/utils/getDefaultPopupParent.d.ts.map +1 -1
  243. package/dist/utils/getDefaultPopupParent.js +6 -0
  244. package/dist/utils/getDefaultPopupParent.js.map +1 -1
  245. package/package.json +1 -1
  246. package/src/components/articleCard/ArticleCard.stories.tsx +524 -111
  247. package/src/components/avatar/Avatar.stories.tsx +504 -59
  248. package/src/components/avatarGroup/AvatarGroup.stories.tsx +977 -175
  249. package/src/components/banner/Banner.stories.tsx +7 -3
  250. package/src/components/card/Card.stories.tsx +466 -36
  251. package/src/components/combobox/Combobox.stories.tsx +867 -260
  252. package/src/components/datePicker/DatePicker.stories.tsx +777 -60
  253. package/src/components/dateTimePicker/DateTimePicker.stories.tsx +910 -132
  254. package/src/components/editableText/EditableText.stories.tsx +567 -91
  255. package/src/components/formField/FormField.test.tsx +6 -0
  256. package/src/components/formField/FormField.tsx +5 -0
  257. package/src/components/formField/fieldset/Fieldset.stories.tsx +761 -51
  258. package/src/components/formField/inputs/checkbox/CheckboxGroup.tsx +1 -1
  259. package/src/components/formField/inputs/checkbox/CheckboxInput.tsx +1 -1
  260. package/src/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.tsx +504 -11
  261. package/src/components/formField/inputs/number/NumberInput.test.tsx +28 -0
  262. package/src/components/formField/inputs/number/NumberInput.tsx +15 -0
  263. package/src/components/formField/inputs/radio/RadioButtonGroup.tsx +17 -4
  264. package/src/components/formField/inputs/radio/RadioButtonInput.stories.tsx +71 -59
  265. package/src/components/formField/inputs/selectDropdown/SelectDropdown.stories.tsx +1079 -168
  266. package/src/components/formField/inputs/time/TimeInput.stories.tsx +1140 -104
  267. package/src/components/formField/label/Label.stories.tsx +317 -8
  268. package/src/components/icoText/IcoText.stories.tsx +442 -31
  269. package/src/components/kpiCard/KPICard.stories.tsx +475 -30
  270. package/src/components/kvpList/KVPList.stories.tsx +593 -26
  271. package/src/components/modal/Modal.stories.tsx +963 -26
  272. package/src/components/modal/modalManager/ModalManager.stories.tsx +612 -454
  273. package/src/components/pill/Pill.stories.tsx +11 -13
  274. package/src/components/pill/Pill.tsx +1 -0
  275. package/src/components/row/Row.stories.tsx +474 -58
  276. package/src/components/searchBar/SearchBar.stories.tsx +570 -38
  277. package/src/components/section/Section.stories.tsx +723 -70
  278. package/src/components/singleUser/SingleUser.stories.tsx +393 -34
  279. package/src/components/slideoverManager/SlideoverManager.stories.tsx +572 -342
  280. package/src/components/table/DSDefaultColDef.ts +25 -5
  281. package/src/components/table/Table.stories.tsx +504 -3
  282. package/src/components/table/Table.test.tsx +255 -0
  283. package/src/components/table/Table.tsx +15 -2
  284. package/src/components/table/TableFooter.stories.tsx +196 -0
  285. package/src/components/table/TableHeader.stories.tsx +251 -0
  286. package/src/components/table/cellEditors/DateCellEditor.stories.tsx +245 -0
  287. package/src/components/table/cellEditors/NumberCellEditor.tsx +83 -0
  288. package/src/components/table/cellEditors/numberCellEditor.scss +11 -0
  289. package/src/components/table/cellRenderers/BooleanCellRenderer.stories.tsx +278 -0
  290. package/src/components/table/cellRenderers/ButtonCellRenderer.stories.tsx +333 -0
  291. package/src/components/table/cellRenderers/CheckboxCellRenderer.stories.tsx +337 -0
  292. package/src/components/table/cellRenderers/CheckboxCellRenderer.tsx +5 -1
  293. package/src/components/table/cellRenderers/DefaultCellRenderer.stories.tsx +342 -0
  294. package/src/components/table/cellRenderers/InlineTextCellRenderer.stories.tsx +292 -0
  295. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx +369 -0
  296. package/src/components/table/columnFilters/BooleanFilter.stories.tsx +268 -0
  297. package/src/components/table/columnFilters/TimeFilter.stories.tsx +281 -0
  298. package/src/components/table/pagination/PaginationPanel.stories.tsx +327 -0
  299. package/src/components/table/table.scss +11 -0
  300. package/src/components/table/tableControls/TableControls.stories.tsx +415 -0
  301. package/src/components/table/tableControls/TableSettingsDropdown.test.tsx +207 -0
  302. package/src/components/table/tableControls/TableSettingsDropdown.tsx +103 -39
  303. package/src/components/tabs/Tabs.stories.tsx +540 -60
  304. package/src/components/tabs/TabsItem.stories.tsx +82 -8
  305. package/src/components/toast/Toast.stories.tsx +539 -77
  306. package/src/components/toggle/Toggle.stories.tsx +371 -135
  307. package/src/components/tooltip/Tooltip.stories.tsx +606 -15
  308. package/src/components/tooltip/TooltipWrapper.stories.tsx +348 -12
  309. package/src/docs/Contributing.mdx +241 -0
  310. package/src/docs/UsingComponents.mdx +93 -0
  311. package/src/docs/Welcome.mdx +68 -0
  312. package/src/global.scss +7 -0
  313. package/src/index.scss +1 -0
  314. package/src/index.ts +3 -2
  315. package/src/utils/PopupParentContext.stories.tsx +367 -0
  316. package/src/utils/getDefaultPopupParent.ts +6 -0
  317. package/.ralph/storybook-upgrade/knowledge.md +0 -308
  318. package/.ralph/storybook-upgrade/prd.json +0 -777
  319. package/.ralph/storybook-upgrade/progress.md +0 -342
  320. package/src/components/table/TableWIP.mdx +0 -3
@@ -0,0 +1,221 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Controls, Heading as DocHeading, Markdown, Primary as DocPrimary, Stories, Subtitle, Title, } from '@storybook/addon-docs/blocks';
3
+ import { InlineTextCellRenderer } from './InlineTextCellRenderer';
4
+ import { Table } from '../../table/Table';
5
+ // ---------------------------------------------------------------------------
6
+ // Docs page content
7
+ // ---------------------------------------------------------------------------
8
+ const DESCRIPTION_INTRO = [
9
+ '`InlineTextCellRenderer` is an AG Grid cell renderer that renders a `TextInput` permanently',
10
+ 'inside a table cell for inline text editing. Pressing Enter commits the current value via',
11
+ '`node.setDataValue`. The input is pre-populated from `valueFormatted ?? value`.',
12
+ '',
13
+ 'Register it via the string key `dsInlineTextCellRenderer` (pre-registered by Arbor\'s `Table`) or by importing the component directly.',
14
+ ].join('\n');
15
+ const USAGE_GUIDANCE = [
16
+ '### When to use',
17
+ '',
18
+ '- When users need to edit text values directly in the table row without opening a modal or form',
19
+ '- Short, single-field edits (names, codes, quantities) where the editing context is clear',
20
+ '',
21
+ '---',
22
+ '',
23
+ '### When NOT to use',
24
+ '',
25
+ '| Situation | Use instead |',
26
+ '|---|---|',
27
+ '| Editing a date value | `DateCellEditor` (`dsDateCellEditor`) |',
28
+ '| Selecting from a list of options | `SelectDropdownCellRenderer` (`dsSelectDropdownCellRenderer`) |',
29
+ '| The edit requires validation before saving | A form in a modal — inline editing skips the validation step |',
30
+ '| The field is long-form text | A full text area in a slideover or modal |',
31
+ ].join('\n');
32
+ const DEVELOPER_NOTES = [
33
+ '### Critical usage patterns',
34
+ '',
35
+ '**This is a renderer, not an editor — the `TextInput` is always visible.**',
36
+ 'Unlike AG Grid\'s native cell editors (which mount only during edit mode), `InlineTextCellRenderer`',
37
+ 'renders the `TextInput` permanently in the cell.',
38
+ '',
39
+ '**Pressing Enter commits the value via `node.setDataValue`.**',
40
+ 'The renderer attaches a `keydown` listener to the cell wrapper on mount. Pressing Enter calls',
41
+ '`node.setDataValue(column, currentInputValue)`. If `column` is not in props, Enter is a no-op.',
42
+ '',
43
+ '```tsx',
44
+ "import { Table } from '@arbor-education/design-system.components';",
45
+ '',
46
+ 'const colDefs = [',
47
+ ' {',
48
+ " field: 'forename',",
49
+ " headerName: 'First name',",
50
+ " cellRenderer: 'dsInlineTextCellRenderer',",
51
+ ' },',
52
+ '];',
53
+ '```',
54
+ '',
55
+ '---',
56
+ '',
57
+ '### Accessibility',
58
+ '',
59
+ 'The `TextInput` inside the cell has no explicit label — the column header provides visual context.',
60
+ 'For screen readers, add an `aria-label` via `cellRendererParams: { "aria-label": "..." }`.',
61
+ '',
62
+ '---',
63
+ '',
64
+ '### TypeScript types',
65
+ '',
66
+ '```ts',
67
+ "import { InlineTextCellRenderer } from '@arbor-education/design-system.components';",
68
+ '```',
69
+ '',
70
+ '`InlineTextCellRenderer` extends `CustomCellRendererProps` with `value: string`.',
71
+ ].join('\n');
72
+ const RELATED_COMPONENTS = [
73
+ '## Related components',
74
+ '',
75
+ '[Table](?path=/docs/components-table--docs) · [SelectDropdownCellRenderer](?path=/docs/components-table-cellrenderers-selectdropdowncellrenderer--docs) · [TextInput](?path=/docs/components-textinput--docs)',
76
+ ].join('\n');
77
+ const PROPS_INTRO = 'The preview below shows `InlineTextCellRenderer` with a pre-populated value. Type in the input to see it update. Pressing Enter would call `node.setDataValue` — in this preview that call is a no-op since there is no AG Grid row node.';
78
+ // ---------------------------------------------------------------------------
79
+ // Custom DocsPage
80
+ // ---------------------------------------------------------------------------
81
+ function InlineTextCellRendererDocsPage() {
82
+ return (_jsxs(_Fragment, { children: [_jsx(Title, {}), _jsx(Subtitle, {}), _jsx(Markdown, { children: DESCRIPTION_INTRO }), _jsx(DocHeading, { children: "Interactive example" }), _jsx(Markdown, { children: PROPS_INTRO }), _jsx(DocPrimary, {}), _jsx(Controls, {}), _jsx(DocHeading, { children: "Usage guidance" }), _jsx(Markdown, { children: USAGE_GUIDANCE }), _jsx(DocHeading, { children: "Developer notes" }), _jsx(Markdown, { children: DEVELOPER_NOTES }), _jsx(DocHeading, { children: "Examples" }), _jsx(Stories, { title: "" }), _jsx(Markdown, { children: RELATED_COMPONENTS })] }));
83
+ }
84
+ // ---------------------------------------------------------------------------
85
+ // Meta
86
+ // ---------------------------------------------------------------------------
87
+ const MOCK_CELL_PROPS = {};
88
+ const meta = {
89
+ title: 'Components/Table/CellRenderers/InlineTextCellRenderer',
90
+ component: InlineTextCellRenderer,
91
+ tags: ['autodocs'],
92
+ parameters: {
93
+ layout: 'padded',
94
+ docs: { page: InlineTextCellRendererDocsPage },
95
+ },
96
+ argTypes: {
97
+ value: {
98
+ control: false,
99
+ description: 'The initial text value displayed in the `TextInput`. The component manages its own internal state from this initial value.',
100
+ table: {
101
+ type: { summary: 'string' },
102
+ defaultValue: { summary: "''" },
103
+ },
104
+ },
105
+ valueFormatted: {
106
+ control: false,
107
+ description: 'If provided, used as the initial text value instead of `value`. Set by AG Grid\'s `valueFormatter`.',
108
+ table: {
109
+ type: { summary: 'string | undefined' },
110
+ defaultValue: { summary: 'undefined' },
111
+ },
112
+ },
113
+ node: {
114
+ control: false,
115
+ description: 'AG Grid row node. The renderer calls `node.setDataValue` when the user presses Enter.',
116
+ table: { type: { summary: 'IRowNode' } },
117
+ },
118
+ column: {
119
+ control: false,
120
+ description: 'AG Grid column instance. Passed as the first argument to `node.setDataValue`.',
121
+ table: { type: { summary: 'Column | null' } },
122
+ },
123
+ },
124
+ };
125
+ export default meta;
126
+ // ---------------------------------------------------------------------------
127
+ // Helper: attach a per-story description to docs
128
+ // ---------------------------------------------------------------------------
129
+ const withDescription = (story, description) => ({
130
+ ...story,
131
+ parameters: {
132
+ ...story.parameters,
133
+ docs: { ...story.parameters?.docs, description: { story: description } },
134
+ },
135
+ });
136
+ // ---------------------------------------------------------------------------
137
+ // Stories
138
+ // ---------------------------------------------------------------------------
139
+ export const Default = withDescription({
140
+ parameters: { controls: { disable: true } },
141
+ render: () => (_jsx(InlineTextCellRenderer, { ...MOCK_CELL_PROPS, value: "Alice Smith" })),
142
+ }, 'Pre-populated with an existing value. The `TextInput` is always visible — type to update the internal value, then press Enter to commit (in a real table, Enter calls `node.setDataValue`).');
143
+ export const Empty = withDescription({
144
+ parameters: {
145
+ controls: { disable: true },
146
+ docs: {
147
+ source: {
148
+ language: 'tsx',
149
+ code: `
150
+ import { Table } from '@arbor-education/design-system.components';
151
+
152
+ const colDefs = [
153
+ {
154
+ field: 'forename',
155
+ headerName: 'First name',
156
+ cellRenderer: 'dsInlineTextCellRenderer',
157
+ },
158
+ ];
159
+ `.trim(),
160
+ },
161
+ },
162
+ },
163
+ render: () => (_jsx(InlineTextCellRenderer, { ...MOCK_CELL_PROPS, value: "" })),
164
+ }, 'Empty initial state — the `TextInput` is blank and ready for input. This is the state for a new row with no existing data.');
165
+ const INLINE_TEXT_IN_TABLE_DATA = [
166
+ { fullName: 'Alice Johnson', forename: 'Alice' },
167
+ { fullName: 'Bob Smith', forename: 'Bob' },
168
+ { fullName: 'Charlie Brown', forename: 'Charlie' },
169
+ ];
170
+ export const InATable = withDescription({
171
+ parameters: {
172
+ controls: { disable: true },
173
+ docs: {
174
+ source: {
175
+ language: 'tsx',
176
+ code: `
177
+ import { Table } from '@arbor-education/design-system.components';
178
+
179
+ const rowData = [
180
+ { fullName: 'Alice Johnson', forename: 'Alice' },
181
+ { fullName: 'Bob Smith', forename: 'Bob' },
182
+ { fullName: 'Charlie Brown', forename: 'Charlie' },
183
+ ];
184
+
185
+ function InlineTextCellRendererExample() {
186
+ return (
187
+ <Table
188
+ rowData={rowData}
189
+ columnDefs={[
190
+ { field: 'fullName', headerName: 'Full Name', flex: 2, editable: false },
191
+ {
192
+ field: 'forename',
193
+ headerName: 'First Name',
194
+ flex: 1,
195
+ editable: false,
196
+ cellRenderer: 'dsInlineTextCellRenderer',
197
+ },
198
+ ]}
199
+ defaultColDef={{ flex: 1, minWidth: 120 }}
200
+ domLayout="autoHeight"
201
+ />
202
+ );
203
+ }
204
+
205
+ export default InlineTextCellRendererExample;
206
+ `.trim(),
207
+ },
208
+ },
209
+ },
210
+ render: () => (_jsx(Table, { rowData: INLINE_TEXT_IN_TABLE_DATA, columnDefs: [
211
+ { field: 'fullName', headerName: 'Full Name', flex: 2, editable: false },
212
+ {
213
+ field: 'forename',
214
+ headerName: 'First Name',
215
+ flex: 1,
216
+ editable: false,
217
+ cellRenderer: 'dsInlineTextCellRenderer',
218
+ },
219
+ ], defaultColDef: { flex: 1, minWidth: 120 }, domLayout: "autoHeight" })),
220
+ }, '`dsInlineTextCellRenderer` wired up inside a full `Table`. Click into any First Name cell to start editing — the `TextInput` is always visible. Press Enter to commit the value via `node.setDataValue`, updating the row data in-place.');
221
+ //# sourceMappingURL=InlineTextCellRenderer.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineTextCellRenderer.stories.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/InlineTextCellRenderer.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import type { CustomCellRendererProps } from 'ag-grid-react';
3
+ import { SelectDropdownCellRenderer } from './SelectDropdownCellRenderer';
4
+ declare function SelectDropdownCellRendererDocsPage(): import("react/jsx-runtime").JSX.Element;
5
+ declare const meta: {
6
+ title: string;
7
+ component: (props: CustomCellRendererProps<any, any, any> & import("../../formField/inputs/selectDropdown/SelectDropdown").SelectDropdownInputProps) => import("react/jsx-runtime").JSX.Element;
8
+ tags: string[];
9
+ parameters: {
10
+ layout: string;
11
+ docs: {
12
+ page: typeof SelectDropdownCellRendererDocsPage;
13
+ };
14
+ };
15
+ argTypes: {
16
+ value: {
17
+ control: false;
18
+ description: string;
19
+ table: {
20
+ type: {
21
+ summary: string;
22
+ };
23
+ };
24
+ };
25
+ options: {
26
+ control: false;
27
+ description: string;
28
+ table: {
29
+ type: {
30
+ summary: string;
31
+ };
32
+ defaultValue: {
33
+ summary: string;
34
+ };
35
+ };
36
+ };
37
+ placeholder: {
38
+ control: false;
39
+ description: string;
40
+ table: {
41
+ type: {
42
+ summary: string;
43
+ };
44
+ defaultValue: {
45
+ summary: string;
46
+ };
47
+ };
48
+ };
49
+ api: {
50
+ control: false;
51
+ description: string;
52
+ table: {
53
+ type: {
54
+ summary: string;
55
+ };
56
+ };
57
+ };
58
+ node: {
59
+ control: false;
60
+ description: string;
61
+ table: {
62
+ type: {
63
+ summary: string;
64
+ };
65
+ };
66
+ };
67
+ };
68
+ };
69
+ export default meta;
70
+ type Story = StoryObj<typeof SelectDropdownCellRenderer>;
71
+ export declare const Default: Story;
72
+ export declare const WithSelection: Story;
73
+ export declare const Disabled: Story;
74
+ export declare const InATable: Story;
75
+ //# sourceMappingURL=SelectDropdownCellRenderer.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectDropdownCellRenderer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAiG1E,iBAAS,kCAAkC,4CAmB1C;AAmBD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CyC,CAAC;AAEpD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAkBzD,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0C3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAiBtB,CAAC;AASF,eAAO,MAAM,QAAQ,EAAE,KAqEtB,CAAC"}
@@ -0,0 +1,270 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Controls, Heading as DocHeading, Markdown, Primary as DocPrimary, Stories, Subtitle, Title, } from '@storybook/addon-docs/blocks';
3
+ import { SelectDropdownCellRenderer } from './SelectDropdownCellRenderer';
4
+ import { Table } from '../../table/Table';
5
+ // ---------------------------------------------------------------------------
6
+ // Docs page content
7
+ // ---------------------------------------------------------------------------
8
+ const DESCRIPTION_INTRO = [
9
+ '`SelectDropdownCellRenderer` is an AG Grid cell renderer that renders an Arbor `SelectDropdown`',
10
+ 'permanently inside a table cell. It listens for `cellKeyDown` events on the Grid API to open the',
11
+ 'dropdown when the user presses Enter in the focused cell. On selection, it calls `node.setDataValue`',
12
+ 'to update the row data in-place.',
13
+ '',
14
+ 'Register it via the string key `dsSelectDropdownCellRenderer` (pre-registered by Arbor\'s `Table`) or by importing the component directly.',
15
+ ].join('\n');
16
+ const USAGE_GUIDANCE = [
17
+ '### When to use',
18
+ '',
19
+ '- On columns where the user must choose from a fixed list of options (status, category, type)',
20
+ '- When the options are the same for every row',
21
+ '',
22
+ '---',
23
+ '',
24
+ '### When NOT to use',
25
+ '',
26
+ '| Situation | Use instead |',
27
+ '|---|---|',
28
+ '| Options vary per row | A custom cell renderer with a `SelectDropdown` and per-row option logic |',
29
+ '| The user can select multiple options in one cell | Not currently supported — use a form in a modal |',
30
+ '| The list is very long (100+ options) | A searchable select or a modal with filtering |',
31
+ ].join('\n');
32
+ const DEVELOPER_NOTES = [
33
+ '### Critical usage patterns',
34
+ '',
35
+ '**`api` is required.**',
36
+ 'The renderer attaches a `cellKeyDown` listener to the Grid API on mount so that pressing Enter',
37
+ 'in the focused cell opens the dropdown. Without `api`, the keyboard shortcut is silently skipped',
38
+ 'but the dropdown still renders and is clickable.',
39
+ '',
40
+ '**`options` must be passed via `cellRendererParams`.**',
41
+ 'Options are not part of the cell `value` — configure them in `cellRendererParams`.',
42
+ 'Option `value` fields are normalised to strings internally for comparison, but the original value',
43
+ '(string or number) is restored when calling `node.setDataValue`.',
44
+ '',
45
+ '```tsx',
46
+ "import { Table } from '@arbor-education/design-system.components';",
47
+ '',
48
+ 'const colDefs = [',
49
+ ' {',
50
+ " field: 'status',",
51
+ " headerName: 'Status',",
52
+ " cellRenderer: 'dsSelectDropdownCellRenderer',",
53
+ ' cellRendererParams: {',
54
+ ' options: [',
55
+ " { label: 'Active', value: 'active' },",
56
+ " { label: 'Inactive', value: 'inactive' },",
57
+ " { label: 'Pending', value: 'pending' },",
58
+ ' ],',
59
+ " placeholder: 'Select status',",
60
+ ' },',
61
+ ' },',
62
+ '];',
63
+ '```',
64
+ '',
65
+ '---',
66
+ '',
67
+ '### Accessibility',
68
+ '',
69
+ 'Pressing Enter in a focused cell opens the dropdown — no mouse click required.',
70
+ 'The `SelectDropdown` handles full keyboard navigation internally (arrow keys, Enter/Escape).',
71
+ '',
72
+ '---',
73
+ '',
74
+ '### TypeScript types',
75
+ '',
76
+ '```ts',
77
+ "import { SelectDropdownCellRenderer } from '@arbor-education/design-system.components';",
78
+ '```',
79
+ '',
80
+ '`SelectDropdownCellRenderer` extends `CustomCellRendererProps` with `SelectDropdownInputProps`.',
81
+ '`options` and `placeholder` are the most commonly used extra props.',
82
+ ].join('\n');
83
+ const RELATED_COMPONENTS = [
84
+ '## Related components',
85
+ '',
86
+ '[Table](?path=/docs/components-table--docs) · [SelectDropdown](?path=/docs/components-selectdropdown--docs) · [InlineTextCellRenderer](?path=/docs/components-table-cellrenderers-inlinetextcellrenderer--docs)',
87
+ ].join('\n');
88
+ const PROPS_INTRO = 'The preview below shows `SelectDropdownCellRenderer` with a set of status options. The dropdown can be opened by clicking it — the Enter-key shortcut requires a live AG Grid API and is a no-op in this preview.';
89
+ // ---------------------------------------------------------------------------
90
+ // Custom DocsPage
91
+ // ---------------------------------------------------------------------------
92
+ function SelectDropdownCellRendererDocsPage() {
93
+ return (_jsxs(_Fragment, { children: [_jsx(Title, {}), _jsx(Subtitle, {}), _jsx(Markdown, { children: DESCRIPTION_INTRO }), _jsx(DocHeading, { children: "Interactive example" }), _jsx(Markdown, { children: PROPS_INTRO }), _jsx(DocPrimary, {}), _jsx(Controls, {}), _jsx(DocHeading, { children: "Usage guidance" }), _jsx(Markdown, { children: USAGE_GUIDANCE }), _jsx(DocHeading, { children: "Developer notes" }), _jsx(Markdown, { children: DEVELOPER_NOTES }), _jsx(DocHeading, { children: "Examples" }), _jsx(Stories, { title: "" }), _jsx(Markdown, { children: RELATED_COMPONENTS })] }));
94
+ }
95
+ // ---------------------------------------------------------------------------
96
+ // Meta
97
+ // ---------------------------------------------------------------------------
98
+ const MOCK_API = {
99
+ addEventListener: () => { },
100
+ removeEventListener: () => { },
101
+ };
102
+ const MOCK_CELL_PROPS = {};
103
+ const STATUS_OPTIONS = [
104
+ { label: 'Active', value: 'active' },
105
+ { label: 'Inactive', value: 'inactive' },
106
+ { label: 'Pending', value: 'pending' },
107
+ ];
108
+ const meta = {
109
+ title: 'Components/Table/CellRenderers/SelectDropdownCellRenderer',
110
+ component: SelectDropdownCellRenderer,
111
+ tags: ['autodocs'],
112
+ parameters: {
113
+ layout: 'padded',
114
+ docs: { page: SelectDropdownCellRendererDocsPage },
115
+ },
116
+ argTypes: {
117
+ value: {
118
+ control: false,
119
+ description: 'The currently selected option value. Used to set the initial selection in the `SelectDropdown`.',
120
+ table: {
121
+ type: { summary: 'string | number | null | undefined' },
122
+ },
123
+ },
124
+ options: {
125
+ control: false,
126
+ description: 'The list of options to display in the dropdown. Passed via `cellRendererParams` in the column definition.',
127
+ table: {
128
+ type: { summary: 'Array<{ label: string; value: string | number }>' },
129
+ defaultValue: { summary: '[]' },
130
+ },
131
+ },
132
+ placeholder: {
133
+ control: false,
134
+ description: 'Placeholder text shown when no option is selected.',
135
+ table: {
136
+ type: { summary: 'string' },
137
+ defaultValue: { summary: '"Select"' },
138
+ },
139
+ },
140
+ api: {
141
+ control: false,
142
+ description: 'AG Grid API. Required for the Enter-key shortcut that opens the dropdown. Provided automatically by AG Grid.',
143
+ table: { type: { summary: 'GridApi' } },
144
+ },
145
+ node: {
146
+ control: false,
147
+ description: 'AG Grid row node. The renderer calls `node.setDataValue` on option selection.',
148
+ table: { type: { summary: 'IRowNode' } },
149
+ },
150
+ },
151
+ };
152
+ export default meta;
153
+ // ---------------------------------------------------------------------------
154
+ // Helper: attach a per-story description to docs
155
+ // ---------------------------------------------------------------------------
156
+ const withDescription = (story, description) => ({
157
+ ...story,
158
+ parameters: {
159
+ ...story.parameters,
160
+ docs: { ...story.parameters?.docs, description: { story: description } },
161
+ },
162
+ });
163
+ // ---------------------------------------------------------------------------
164
+ // Stories
165
+ // ---------------------------------------------------------------------------
166
+ export const Default = withDescription({
167
+ parameters: { controls: { disable: true } },
168
+ render: () => (_jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "", options: STATUS_OPTIONS, placeholder: "Select status", node: { setDataValue: () => { } }, column: {} })),
169
+ }, 'No selection — the `SelectDropdown` shows the placeholder text. Click to open the dropdown and select an option.');
170
+ export const WithSelection = withDescription({
171
+ parameters: {
172
+ controls: { disable: true },
173
+ docs: {
174
+ source: {
175
+ language: 'tsx',
176
+ code: `
177
+ import { Table } from '@arbor-education/design-system.components';
178
+
179
+ const colDefs = [
180
+ {
181
+ field: 'status',
182
+ headerName: 'Status',
183
+ cellRenderer: 'dsSelectDropdownCellRenderer',
184
+ cellRendererParams: {
185
+ options: [
186
+ { label: 'Active', value: 'active' },
187
+ { label: 'Inactive', value: 'inactive' },
188
+ { label: 'Pending', value: 'pending' },
189
+ ],
190
+ placeholder: 'Select status',
191
+ },
192
+ },
193
+ ];
194
+ `.trim(),
195
+ },
196
+ },
197
+ },
198
+ render: () => (_jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "active", options: STATUS_OPTIONS, placeholder: "Select status", node: { setDataValue: () => { } }, column: {} })),
199
+ }, 'Pre-selected with `value="active"`. The `SelectDropdown` initialises with the matching option selected.');
200
+ export const Disabled = withDescription({
201
+ parameters: { controls: { disable: true } },
202
+ render: () => (_jsx(SelectDropdownCellRenderer, { ...MOCK_CELL_PROPS, api: MOCK_API, value: "active", options: STATUS_OPTIONS, placeholder: "Select status", disabled: true, node: { setDataValue: () => { } }, column: {} })),
203
+ }, 'Pass `disabled: true` via `cellRendererParams` to prevent the user from changing the selection for specific rows.');
204
+ const SELECT_IN_TABLE_DATA = [
205
+ { name: 'Alice Johnson', status: 'active' },
206
+ { name: 'Bob Smith', status: 'inactive' },
207
+ { name: 'Charlie Brown', status: 'pending' },
208
+ { name: 'Diana Prince', status: 'active' },
209
+ ];
210
+ export const InATable = withDescription({
211
+ parameters: {
212
+ controls: { disable: true },
213
+ docs: {
214
+ source: {
215
+ language: 'tsx',
216
+ code: `
217
+ import { Table } from '@arbor-education/design-system.components';
218
+
219
+ const rowData = [
220
+ { name: 'Alice Johnson', status: 'active' },
221
+ { name: 'Bob Smith', status: 'inactive' },
222
+ { name: 'Charlie Brown', status: 'pending' },
223
+ { name: 'Diana Prince', status: 'active' },
224
+ ];
225
+
226
+ const statusOptions = [
227
+ { label: 'Active', value: 'active' },
228
+ { label: 'Inactive', value: 'inactive' },
229
+ { label: 'Pending', value: 'pending' },
230
+ ];
231
+
232
+ function SelectDropdownCellRendererExample() {
233
+ return (
234
+ <Table
235
+ rowData={rowData}
236
+ columnDefs={[
237
+ { field: 'name', headerName: 'Name', flex: 2 },
238
+ {
239
+ field: 'status',
240
+ headerName: 'Status',
241
+ flex: 1,
242
+ editable: false,
243
+ cellRenderer: 'dsSelectDropdownCellRenderer',
244
+ cellRendererParams: { options: statusOptions },
245
+ },
246
+ ]}
247
+ defaultColDef={{ flex: 1, minWidth: 120 }}
248
+ domLayout="autoHeight"
249
+ />
250
+ );
251
+ }
252
+
253
+ export default SelectDropdownCellRendererExample;
254
+ `.trim(),
255
+ },
256
+ },
257
+ },
258
+ render: () => (_jsx(Table, { rowData: SELECT_IN_TABLE_DATA, columnDefs: [
259
+ { field: 'name', headerName: 'Name', flex: 2 },
260
+ {
261
+ field: 'status',
262
+ headerName: 'Status',
263
+ flex: 1,
264
+ editable: false,
265
+ cellRenderer: 'dsSelectDropdownCellRenderer',
266
+ cellRendererParams: { options: STATUS_OPTIONS },
267
+ },
268
+ ], defaultColDef: { flex: 1, minWidth: 120 }, domLayout: "autoHeight" })),
269
+ }, '`dsSelectDropdownCellRenderer` wired up inside a full `Table`. Click a Status dropdown to select a new value — the selection is committed to the row via `node.setDataValue`. Press Enter in a focused Status cell to open the dropdown via keyboard.');
270
+ //# sourceMappingURL=SelectDropdownCellRenderer.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectDropdownCellRenderer.stories.js","sourceRoot":"","sources":["../../../../src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { BooleanFilter } from './BooleanFilter/BooleanFilter';
3
+ declare function BooleanFilterDocsPage(): import("react/jsx-runtime").JSX.Element;
4
+ declare const meta: {
5
+ title: string;
6
+ component: (props: {
7
+ model: {
8
+ allowTrue: boolean;
9
+ allowFalse: boolean;
10
+ } | null;
11
+ onModelChange: (model: {
12
+ allowTrue: boolean;
13
+ allowFalse: boolean;
14
+ }) => void;
15
+ }) => import("react/jsx-runtime").JSX.Element;
16
+ tags: string[];
17
+ parameters: {
18
+ layout: string;
19
+ docs: {
20
+ page: typeof BooleanFilterDocsPage;
21
+ };
22
+ };
23
+ argTypes: {
24
+ model: {
25
+ description: string;
26
+ control: false;
27
+ table: {
28
+ type: {
29
+ summary: string;
30
+ };
31
+ defaultValue: {
32
+ summary: string;
33
+ };
34
+ };
35
+ };
36
+ onModelChange: {
37
+ description: string;
38
+ control: false;
39
+ table: {
40
+ type: {
41
+ summary: string;
42
+ };
43
+ };
44
+ };
45
+ };
46
+ args: {
47
+ onModelChange: import("@vitest/spy").Mock<(...args: any[]) => any>;
48
+ };
49
+ };
50
+ export default meta;
51
+ type Story = StoryObj<typeof BooleanFilter>;
52
+ export declare const Default: Story;
53
+ export declare const YesSelected: Story;
54
+ export declare const NoSelected: Story;
55
+ export declare const Controlled: Story;
56
+ export declare const InATable: Story;
57
+ //# sourceMappingURL=BooleanFilter.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanFilter.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/table/columnFilters/BooleanFilter.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,EAAE,aAAa,EAAyB,MAAM,+BAA+B,CAAC;AAgErF,iBAAS,qBAAqB,4CAiB7B;AAMD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC;AAc5C,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KASzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KASxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAgBxB,CAAC;AAUF,eAAO,MAAM,QAAQ,EAAE,KAsEtB,CAAC"}