@arbor-education/design-system.components 0.15.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 (297) hide show
  1. package/.gather/skills/write-stories/SKILL.md +207 -271
  2. package/.storybook/preview.ts +5 -0
  3. package/CHANGELOG.md +17 -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 +2 -0
  131. package/dist/components/table/Table.stories.d.ts.map +1 -1
  132. package/dist/components/table/Table.stories.js +357 -3
  133. package/dist/components/table/Table.stories.js.map +1 -1
  134. package/dist/components/table/TableFooter.stories.d.ts +49 -0
  135. package/dist/components/table/TableFooter.stories.d.ts.map +1 -0
  136. package/dist/components/table/TableFooter.stories.js +137 -0
  137. package/dist/components/table/TableFooter.stories.js.map +1 -0
  138. package/dist/components/table/TableHeader.stories.d.ts +93 -0
  139. package/dist/components/table/TableHeader.stories.d.ts.map +1 -0
  140. package/dist/components/table/TableHeader.stories.js +176 -0
  141. package/dist/components/table/TableHeader.stories.js.map +1 -0
  142. package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts +44 -0
  143. package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts.map +1 -0
  144. package/dist/components/table/cellEditors/DateCellEditor.stories.js +186 -0
  145. package/dist/components/table/cellEditors/DateCellEditor.stories.js.map +1 -0
  146. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts +40 -0
  147. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts.map +1 -0
  148. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js +209 -0
  149. package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js.map +1 -0
  150. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts +48 -0
  151. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts.map +1 -0
  152. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js +244 -0
  153. package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js.map +1 -0
  154. package/dist/components/table/cellRenderers/CheckboxCellRenderer.d.ts.map +1 -1
  155. package/dist/components/table/cellRenderers/CheckboxCellRenderer.js +3 -1
  156. package/dist/components/table/cellRenderers/CheckboxCellRenderer.js.map +1 -1
  157. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts +64 -0
  158. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts.map +1 -0
  159. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js +241 -0
  160. package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js.map +1 -0
  161. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts +55 -0
  162. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts.map +1 -0
  163. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js +245 -0
  164. package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js.map +1 -0
  165. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts +67 -0
  166. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts.map +1 -0
  167. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js +221 -0
  168. package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js.map +1 -0
  169. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts +75 -0
  170. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts.map +1 -0
  171. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js +270 -0
  172. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js.map +1 -0
  173. package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts +57 -0
  174. package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts.map +1 -0
  175. package/dist/components/table/columnFilters/BooleanFilter.stories.js +198 -0
  176. package/dist/components/table/columnFilters/BooleanFilter.stories.js.map +1 -0
  177. package/dist/components/table/columnFilters/TimeFilter.stories.d.ts +58 -0
  178. package/dist/components/table/columnFilters/TimeFilter.stories.d.ts.map +1 -0
  179. package/dist/components/table/columnFilters/TimeFilter.stories.js +207 -0
  180. package/dist/components/table/columnFilters/TimeFilter.stories.js.map +1 -0
  181. package/dist/components/table/pagination/PaginationPanel.stories.d.ts +113 -0
  182. package/dist/components/table/pagination/PaginationPanel.stories.d.ts.map +1 -0
  183. package/dist/components/table/pagination/PaginationPanel.stories.js +272 -0
  184. package/dist/components/table/pagination/PaginationPanel.stories.js.map +1 -0
  185. package/dist/components/table/tableControls/TableControls.stories.d.ts +151 -0
  186. package/dist/components/table/tableControls/TableControls.stories.d.ts.map +1 -0
  187. package/dist/components/table/tableControls/TableControls.stories.js +356 -0
  188. package/dist/components/table/tableControls/TableControls.stories.js.map +1 -0
  189. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts +27 -1
  190. package/dist/components/table/tableControls/TableSettingsDropdown.d.ts.map +1 -1
  191. package/dist/components/table/tableControls/TableSettingsDropdown.js +53 -26
  192. package/dist/components/table/tableControls/TableSettingsDropdown.js.map +1 -1
  193. package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts +2 -0
  194. package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts.map +1 -0
  195. package/dist/components/table/tableControls/TableSettingsDropdown.test.js +178 -0
  196. package/dist/components/table/tableControls/TableSettingsDropdown.test.js.map +1 -0
  197. package/dist/components/tabs/Tabs.stories.d.ts +22 -4
  198. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  199. package/dist/components/tabs/Tabs.stories.js +398 -22
  200. package/dist/components/tabs/Tabs.stories.js.map +1 -1
  201. package/dist/components/tabs/TabsItem.stories.d.ts +54 -1
  202. package/dist/components/tabs/TabsItem.stories.d.ts.map +1 -1
  203. package/dist/components/tabs/TabsItem.stories.js +61 -9
  204. package/dist/components/tabs/TabsItem.stories.js.map +1 -1
  205. package/dist/components/toast/Toast.stories.d.ts +103 -10
  206. package/dist/components/toast/Toast.stories.d.ts.map +1 -1
  207. package/dist/components/toast/Toast.stories.js +409 -47
  208. package/dist/components/toast/Toast.stories.js.map +1 -1
  209. package/dist/components/toggle/Toggle.stories.d.ts +61 -46
  210. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  211. package/dist/components/toggle/Toggle.stories.js +311 -122
  212. package/dist/components/toggle/Toggle.stories.js.map +1 -1
  213. package/dist/components/tooltip/Tooltip.stories.d.ts +78 -6
  214. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  215. package/dist/components/tooltip/Tooltip.stories.js +413 -7
  216. package/dist/components/tooltip/Tooltip.stories.js.map +1 -1
  217. package/dist/components/tooltip/TooltipWrapper.stories.d.ts +71 -7
  218. package/dist/components/tooltip/TooltipWrapper.stories.d.ts.map +1 -1
  219. package/dist/components/tooltip/TooltipWrapper.stories.js +238 -10
  220. package/dist/components/tooltip/TooltipWrapper.stories.js.map +1 -1
  221. package/dist/index.css +8 -0
  222. package/dist/index.css.map +1 -1
  223. package/dist/utils/PopupParentContext.stories.d.ts +17 -0
  224. package/dist/utils/PopupParentContext.stories.d.ts.map +1 -0
  225. package/dist/utils/PopupParentContext.stories.js +266 -0
  226. package/dist/utils/PopupParentContext.stories.js.map +1 -0
  227. package/dist/utils/getDefaultPopupParent.d.ts.map +1 -1
  228. package/dist/utils/getDefaultPopupParent.js +6 -0
  229. package/dist/utils/getDefaultPopupParent.js.map +1 -1
  230. package/package.json +1 -1
  231. package/src/components/articleCard/ArticleCard.stories.tsx +524 -111
  232. package/src/components/avatar/Avatar.stories.tsx +504 -59
  233. package/src/components/avatarGroup/AvatarGroup.stories.tsx +977 -175
  234. package/src/components/banner/Banner.stories.tsx +7 -3
  235. package/src/components/card/Card.stories.tsx +466 -36
  236. package/src/components/combobox/Combobox.stories.tsx +867 -260
  237. package/src/components/datePicker/DatePicker.stories.tsx +777 -60
  238. package/src/components/dateTimePicker/DateTimePicker.stories.tsx +910 -132
  239. package/src/components/editableText/EditableText.stories.tsx +567 -91
  240. package/src/components/formField/FormField.test.tsx +6 -0
  241. package/src/components/formField/FormField.tsx +5 -0
  242. package/src/components/formField/fieldset/Fieldset.stories.tsx +761 -51
  243. package/src/components/formField/inputs/checkbox/CheckboxGroup.tsx +1 -1
  244. package/src/components/formField/inputs/checkbox/CheckboxInput.tsx +1 -1
  245. package/src/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.tsx +504 -11
  246. package/src/components/formField/inputs/radio/RadioButtonGroup.tsx +17 -4
  247. package/src/components/formField/inputs/radio/RadioButtonInput.stories.tsx +71 -59
  248. package/src/components/formField/inputs/selectDropdown/SelectDropdown.stories.tsx +1079 -168
  249. package/src/components/formField/inputs/time/TimeInput.stories.tsx +1140 -104
  250. package/src/components/formField/label/Label.stories.tsx +317 -8
  251. package/src/components/icoText/IcoText.stories.tsx +442 -31
  252. package/src/components/kpiCard/KPICard.stories.tsx +475 -30
  253. package/src/components/kvpList/KVPList.stories.tsx +593 -26
  254. package/src/components/modal/Modal.stories.tsx +963 -26
  255. package/src/components/modal/modalManager/ModalManager.stories.tsx +612 -454
  256. package/src/components/pill/Pill.stories.tsx +11 -13
  257. package/src/components/pill/Pill.tsx +1 -0
  258. package/src/components/row/Row.stories.tsx +474 -58
  259. package/src/components/searchBar/SearchBar.stories.tsx +570 -38
  260. package/src/components/section/Section.stories.tsx +723 -70
  261. package/src/components/singleUser/SingleUser.stories.tsx +393 -34
  262. package/src/components/slideoverManager/SlideoverManager.stories.tsx +572 -342
  263. package/src/components/table/DSDefaultColDef.ts +25 -5
  264. package/src/components/table/Table.stories.tsx +411 -3
  265. package/src/components/table/Table.tsx +9 -2
  266. package/src/components/table/TableFooter.stories.tsx +196 -0
  267. package/src/components/table/TableHeader.stories.tsx +251 -0
  268. package/src/components/table/cellEditors/DateCellEditor.stories.tsx +245 -0
  269. package/src/components/table/cellRenderers/BooleanCellRenderer.stories.tsx +278 -0
  270. package/src/components/table/cellRenderers/ButtonCellRenderer.stories.tsx +333 -0
  271. package/src/components/table/cellRenderers/CheckboxCellRenderer.stories.tsx +337 -0
  272. package/src/components/table/cellRenderers/CheckboxCellRenderer.tsx +5 -1
  273. package/src/components/table/cellRenderers/DefaultCellRenderer.stories.tsx +342 -0
  274. package/src/components/table/cellRenderers/InlineTextCellRenderer.stories.tsx +292 -0
  275. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx +369 -0
  276. package/src/components/table/columnFilters/BooleanFilter.stories.tsx +268 -0
  277. package/src/components/table/columnFilters/TimeFilter.stories.tsx +281 -0
  278. package/src/components/table/pagination/PaginationPanel.stories.tsx +327 -0
  279. package/src/components/table/tableControls/TableControls.stories.tsx +415 -0
  280. package/src/components/table/tableControls/TableSettingsDropdown.test.tsx +207 -0
  281. package/src/components/table/tableControls/TableSettingsDropdown.tsx +103 -39
  282. package/src/components/tabs/Tabs.stories.tsx +540 -60
  283. package/src/components/tabs/TabsItem.stories.tsx +82 -8
  284. package/src/components/toast/Toast.stories.tsx +539 -77
  285. package/src/components/toggle/Toggle.stories.tsx +371 -135
  286. package/src/components/tooltip/Tooltip.stories.tsx +606 -15
  287. package/src/components/tooltip/TooltipWrapper.stories.tsx +348 -12
  288. package/src/docs/Contributing.mdx +241 -0
  289. package/src/docs/UsingComponents.mdx +93 -0
  290. package/src/docs/Welcome.mdx +68 -0
  291. package/src/global.scss +7 -0
  292. package/src/utils/PopupParentContext.stories.tsx +367 -0
  293. package/src/utils/getDefaultPopupParent.ts +6 -0
  294. package/.ralph/storybook-upgrade/knowledge.md +0 -308
  295. package/.ralph/storybook-upgrade/prd.json +0 -777
  296. package/.ralph/storybook-upgrade/progress.md +0 -342
  297. package/src/components/table/TableWIP.mdx +0 -3
@@ -1,73 +1,435 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Toast } from './Toast';
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createPortal } from 'react-dom';
3
3
  import { useState } from 'react';
4
+ import { Controls, Heading as DocHeading, Markdown, Primary as DocPrimary, Stories, Subtitle, Title, } from '@storybook/addon-docs/blocks';
5
+ import { Toast } from './Toast';
4
6
  import { Button } from '../button/Button';
7
+ // ---------------------------------------------------------------------------
8
+ // Docs page content
9
+ // ---------------------------------------------------------------------------
10
+ const DESCRIPTION_INTRO = [
11
+ 'Toast is a brief, non-blocking notification that appears at the edge of the screen and auto-dismisses',
12
+ 'after a timeout. Use it for low-priority confirmations of completed actions.',
13
+ 'Built on [Radix UI Toast](https://www.radix-ui.com/primitives/docs/components/toast).',
14
+ '',
15
+ '> **Requires setup.** `Toast.Provider` must wrap your component tree (once, near the root) and',
16
+ '> `Toast.Viewport` must live inside the same provider — this is where toasts are rendered into the DOM.',
17
+ ].join('\n');
18
+ const USAGE_GUIDANCE = [
19
+ '### When to use',
20
+ '',
21
+ '- **Action confirmations** — "Record saved", "Email sent", "Item deleted"',
22
+ '- **Non-blocking status** — the user does not need to read the message before continuing',
23
+ '- **Low-priority alerts** — information the user benefits from knowing, but that does not require action',
24
+ '',
25
+ '---',
26
+ '',
27
+ '### When NOT to use',
28
+ '',
29
+ '| Situation | Use instead |',
30
+ '|---|---|',
31
+ '| The user must act before continuing | [`Modal`](?path=/docs/components-modals-modal--docs) |',
32
+ '| Persistent contextual information on a page | [`Banner`](?path=/docs/components-banner--docs) |',
33
+ '| An error the user must fix | [`Banner`](?path=/docs/components-banner--docs) (danger) or form validation messages |',
34
+ '| Content requiring more than 2 lines | Banner — toasts are not designed for long copy |',
35
+ '',
36
+ '---',
37
+ '',
38
+ '### Content guidelines',
39
+ '',
40
+ '- **Ideal: 1 line.** "Assessment period saved." Short, past-tense confirmation.',
41
+ '- **Acceptable: 2 lines.** A little more context is fine — "Assessment period saved. Pupils can now submit work."',
42
+ '- **Never: 3+ lines.** If you need that much copy, use a Banner instead.',
43
+ '- Use sentence case. No trailing punctuation on single sentences (optional on two-sentence messages).',
44
+ '- Do NOT include action links or buttons inside the toast — the close button is the only interaction.',
45
+ ].join('\n');
46
+ const DEVELOPER_NOTES = [
47
+ '### Setup — required once per app',
48
+ '',
49
+ '```tsx',
50
+ "import { Toast } from '@arbor-education/design-system.components';",
51
+ '',
52
+ 'function App() {',
53
+ ' return (',
54
+ ' <Toast.Provider>',
55
+ ' {/* your app */}',
56
+ ' <Toast.Viewport /> {/* renders toasts into the DOM */}',
57
+ ' </Toast.Provider>',
58
+ ' );',
59
+ '}',
60
+ '```',
61
+ '',
62
+ '`Toast.Provider` and `Toast.Viewport` only need to be mounted **once**. The `Toast` component itself',
63
+ 'can then be rendered and controlled from anywhere in the tree below the provider.',
64
+ '',
65
+ '---',
66
+ '',
67
+ '### Controlling open state',
68
+ '',
69
+ '```tsx',
70
+ "import { Toast, Button } from '@arbor-education/design-system.components';",
71
+ "import { useState } from 'react';",
72
+ '',
73
+ 'function SaveButton() {',
74
+ ' const [open, setOpen] = useState(false);',
75
+ '',
76
+ ' const handleSave = () => {',
77
+ ' // perform save...',
78
+ ' setOpen(true); // show toast',
79
+ ' };',
80
+ '',
81
+ ' return (',
82
+ ' <>',
83
+ ' <Button onClick={handleSave}>Save</Button>',
84
+ ' <Toast open={open} onOpenChange={setOpen} variant="success">',
85
+ ' Assessment period saved',
86
+ ' </Toast>',
87
+ ' </>',
88
+ ' );',
89
+ '}',
90
+ '```',
91
+ '',
92
+ '**Re-triggering the same toast**: If the user performs the same action twice, React will not re-open',
93
+ 'the toast because `open` is already `true`. Reset it first:',
94
+ '```ts',
95
+ 'setOpen(false);',
96
+ 'requestAnimationFrame(() => setOpen(true));',
97
+ '```',
98
+ '',
99
+ '---',
100
+ '',
101
+ '### Accessibility',
102
+ '',
103
+ '- Radix renders `role="status"` (for `type="background"`, the default) or `role="alert"`',
104
+ ' (for `type="foreground"`). Do NOT add `aria-live` yourself — Radix handles this.',
105
+ '- `children` is rendered as `Toast.Title` — it is always required for screen reader announcement.',
106
+ '- `type="foreground"` causes the toast to be announced immediately, interrupting the user.',
107
+ ' Use only for genuinely urgent messages. Default `type="background"` announces at the next pause.',
108
+ '',
109
+ '---',
110
+ '',
111
+ '### Sub-component props',
112
+ '',
113
+ '| Sub-component | Key props | Description |',
114
+ '|---|---|---|',
115
+ '| `Toast.Provider` | `duration?` (default 5000ms), `label?`, `swipeDirection?` | Wraps the tree — mount once |',
116
+ '| `Toast.Viewport` | `hotkey?` (default F8), `label?` | The DOM target toasts render into — must be inside `Toast.Provider` |',
117
+ '',
118
+ '---',
119
+ '',
120
+ '### TypeScript types',
121
+ '',
122
+ '```ts',
123
+ "import { Toast } from '@arbor-education/design-system.components';",
124
+ "import type { ToastProps } from '@arbor-education/design-system.components';",
125
+ '',
126
+ "type ToastVariant = 'information' | 'success' | 'warning' | 'danger';",
127
+ '',
128
+ 'type ToastProps = RadixToast.ToastProps & {',
129
+ ' variant?: ToastVariant; // default: "information"',
130
+ '};',
131
+ '```',
132
+ ].join('\n');
133
+ const RELATED_COMPONENTS = [
134
+ '## Related components',
135
+ '',
136
+ '[Banner](?path=/docs/components-banner--docs) · [Modal](?path=/docs/components-modals-modal--docs) · [Button](?path=/docs/components-button--docs)',
137
+ ].join('\n');
138
+ const PROPS_INTRO = 'The preview below is wired to the **Controls** panel — tweak any prop to see the story update in real time.';
139
+ // ---------------------------------------------------------------------------
140
+ // Docs page
141
+ // ---------------------------------------------------------------------------
142
+ function ToastDocsPage() {
143
+ 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 })] }));
144
+ }
145
+ // ---------------------------------------------------------------------------
146
+ // Meta
147
+ // ---------------------------------------------------------------------------
5
148
  const meta = {
6
- tags: ['autodocs'],
7
149
  title: 'Components/Toast',
8
150
  component: Toast,
151
+ tags: ['autodocs'],
9
152
  parameters: {
153
+ layout: 'centered',
10
154
  docs: {
11
- description: {
12
- component: 'Toasts must have a Toast.Provider somewhere in its parent tree. A Toast.Viewport is also required inside the same provider as it is the element the toasts are rendered into. This uses the Radix Toast component, see https://www.radix-ui.com/primitives/docs/components/toast for more information.',
13
- },
155
+ page: ToastDocsPage,
14
156
  },
15
157
  },
16
158
  argTypes: {
17
159
  variant: {
18
160
  control: 'select',
19
161
  options: ['information', 'success', 'warning', 'danger'],
20
- description: 'Toast variant',
162
+ description: 'Sets the colour, icon, and semantic meaning of the toast.',
163
+ table: {
164
+ type: { summary: "'information' | 'success' | 'warning' | 'danger'" },
165
+ defaultValue: { summary: "'information'" },
166
+ },
167
+ },
168
+ children: {
169
+ control: 'text',
170
+ description: [
171
+ 'The toast message. Rendered as `Toast.Title` — always required for screen reader announcement.',
172
+ 'Keep to 1 line ideally, 2 lines maximum.',
173
+ ].join(' '),
174
+ table: {
175
+ type: { summary: 'ReactNode' },
176
+ defaultValue: { summary: 'undefined' },
177
+ },
178
+ },
179
+ duration: {
180
+ control: { type: 'number', min: 0, step: 500 },
181
+ description: [
182
+ 'Time in milliseconds before the toast auto-dismisses.',
183
+ 'Inherited from `Toast.Provider` if not set per-toast.',
184
+ 'Pass `Infinity` to disable auto-dismiss.',
185
+ ].join(' '),
186
+ table: {
187
+ type: { summary: 'number' },
188
+ defaultValue: { summary: '5000' },
189
+ },
190
+ },
191
+ type: {
192
+ control: 'select',
193
+ options: ['background', 'foreground'],
194
+ description: [
195
+ '`"background"` (default) — announced at the next pause in user interaction.',
196
+ '`"foreground"` — announced immediately, interrupting the user. Reserve for urgent messages.',
197
+ ].join(' '),
198
+ table: {
199
+ type: { summary: "'background' | 'foreground'" },
200
+ defaultValue: { summary: "'background'" },
201
+ },
202
+ },
203
+ open: {
204
+ control: false,
205
+ description: 'Controlled open state. Pair with `onOpenChange` to manage dismiss.',
206
+ table: {
207
+ type: { summary: 'boolean' },
208
+ defaultValue: { summary: 'undefined' },
209
+ },
210
+ },
211
+ onOpenChange: {
212
+ control: false,
213
+ description: 'Fired when the toast opens or closes (including auto-dismiss and swipe).',
214
+ table: {
215
+ type: { summary: '(open: boolean) => void' },
216
+ defaultValue: { summary: 'undefined' },
217
+ },
21
218
  },
22
219
  },
23
220
  };
24
- const ToastWrapper = (args) => {
25
- const [open, setOpen] = useState(false);
26
- return (_jsxs(Toast.Provider, { children: [_jsx(Button, { onClick: () => setOpen(true), children: "Open Toast" }), _jsx(Toast, { ...args, open: open, onOpenChange: setOpen }), _jsx(Toast.Viewport, {})] }));
27
- };
28
- export const Information = {
29
- args: {
30
- variant: 'information',
31
- children: 'This is an information message',
221
+ export default meta;
222
+ // ---------------------------------------------------------------------------
223
+ // Helper
224
+ // ---------------------------------------------------------------------------
225
+ const withDescription = (story, description) => ({
226
+ ...story,
227
+ parameters: {
228
+ ...story.parameters,
229
+ docs: {
230
+ ...story.parameters?.docs,
231
+ description: {
232
+ story: description,
233
+ },
234
+ },
32
235
  },
33
- render: ToastWrapper,
236
+ });
237
+ // ---------------------------------------------------------------------------
238
+ // Templates
239
+ // NOTE: Toast.Viewport is portaled to document.body via createPortal so that
240
+ // position:fixed works correctly in Storybook's canvas context (the canvas
241
+ // CSS would otherwise constrain fixed positioning to the canvas area).
242
+ // ---------------------------------------------------------------------------
243
+ const ToastStoryWrapper = ({ children }) => (_jsxs(Toast.Provider, { children: [children, createPortal(_jsx(Toast.Viewport, {}), document.body)] }));
244
+ const DefaultTemplate = (args) => {
245
+ const [open, setOpen] = useState(false);
246
+ return (_jsxs(ToastStoryWrapper, { children: [_jsx(Button, { onClick: () => setOpen(true), children: "Show toast" }), _jsx(Toast, { ...args, open: open, onOpenChange: setOpen })] }));
34
247
  };
35
- export const Success = {
36
- args: {
37
- variant: 'success',
38
- children: 'Your changes have been saved successfully!',
39
- },
40
- render: ToastWrapper,
248
+ const AllVariantsTemplate = () => {
249
+ const [infoOpen, setInfoOpen] = useState(false);
250
+ const [successOpen, setSuccessOpen] = useState(false);
251
+ const [warningOpen, setWarningOpen] = useState(false);
252
+ const [dangerOpen, setDangerOpen] = useState(false);
253
+ return (_jsxs(ToastStoryWrapper, { children: [_jsxs("div", { style: { display: 'flex', gap: 'var(--spacing-small)', flexWrap: 'wrap' }, children: [_jsx(Button, { onClick: () => setInfoOpen(true), children: "Information" }), _jsx(Button, { onClick: () => setSuccessOpen(true), children: "Success" }), _jsx(Button, { onClick: () => setWarningOpen(true), children: "Warning" }), _jsx(Button, { onClick: () => setDangerOpen(true), children: "Danger" })] }), _jsx(Toast, { variant: "information", open: infoOpen, onOpenChange: setInfoOpen, children: "Attendance report generated" }), _jsx(Toast, { variant: "success", open: successOpen, onOpenChange: setSuccessOpen, children: "Assessment period saved" }), _jsx(Toast, { variant: "warning", open: warningOpen, onOpenChange: setWarningOpen, children: "Session expires in 5 minutes" }), _jsx(Toast, { variant: "danger", open: dangerOpen, onOpenChange: setDangerOpen, children: "Failed to save changes \u2014 please try again" })] }));
41
254
  };
42
- export const Warning = {
43
- args: {
44
- variant: 'warning',
45
- children: 'Please review your changes before proceeding',
46
- },
47
- render: ToastWrapper,
255
+ const ContentGuidelinesTemplate = () => {
256
+ const [idealOpen, setIdealOpen] = useState(false);
257
+ const [acceptableOpen, setAcceptableOpen] = useState(false);
258
+ const [tooLongOpen, setTooLongOpen] = useState(false);
259
+ return (_jsxs(ToastStoryWrapper, { children: [_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--spacing-small)', alignItems: 'flex-start' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 'var(--spacing-medium)' }, children: [_jsx(Button, { onClick: () => setIdealOpen(true), children: "Ideal \u2014 1 line" }), _jsx("span", { style: { fontSize: 'var(--font-size-2-13)', color: 'var(--color-semantic-success-600)' }, children: "Short, past-tense, no trailing punctuation" })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 'var(--spacing-medium)' }, children: [_jsx(Button, { onClick: () => setAcceptableOpen(true), children: "Acceptable \u2014 2 lines" }), _jsx("span", { style: { fontSize: 'var(--font-size-2-13)', color: 'var(--color-semantic-caution-600)' }, children: "A little context is fine" })] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 'var(--spacing-medium)' }, children: [_jsx(Button, { variant: "secondary-destructive", onClick: () => setTooLongOpen(true), children: "Too long \u2014 use Banner" }), _jsx("span", { style: { fontSize: 'var(--font-size-2-13)', color: 'var(--color-semantic-destructive-600)' }, children: "3+ lines \u2014 switch to Banner instead" })] })] }), _jsx(Toast, { variant: "success", open: idealOpen, onOpenChange: setIdealOpen, children: "Assessment period saved" }), _jsx(Toast, { variant: "success", open: acceptableOpen, onOpenChange: setAcceptableOpen, children: "Assessment period saved. Pupils can now submit work for grading." }), _jsx(Toast, { variant: "information", open: tooLongOpen, onOpenChange: setTooLongOpen, children: "Assessment period saved. Pupils can now submit work for grading. Remember to notify your department heads and check the term dates align with your reporting schedule before the deadline." })] }));
48
260
  };
49
- export const Danger = {
50
- args: {
51
- variant: 'danger',
52
- children: 'An error occurred while processing your request',
53
- },
54
- render: ToastWrapper,
261
+ const WithCustomDurationTemplate = () => {
262
+ const [shortOpen, setShortOpen] = useState(false);
263
+ const [longOpen, setLongOpen] = useState(false);
264
+ return (_jsxs(ToastStoryWrapper, { children: [_jsxs("div", { style: { display: 'flex', gap: 'var(--spacing-small)' }, children: [_jsx(Button, { onClick: () => setShortOpen(true), children: "Short (2 s)" }), _jsx(Button, { onClick: () => setLongOpen(true), children: "Long (10 s)" })] }), _jsx(Toast, { variant: "information", open: shortOpen, onOpenChange: setShortOpen, duration: 2000, children: "Dismissed in 2 seconds" }), _jsx(Toast, { variant: "information", open: longOpen, onOpenChange: setLongOpen, duration: 10000, children: "Dismissed in 10 seconds \u2014 use for important but non-urgent messages" })] }));
55
265
  };
56
- export const LongContent = {
266
+ // ---------------------------------------------------------------------------
267
+ // Stories
268
+ // ---------------------------------------------------------------------------
269
+ export const Default = withDescription({
57
270
  args: {
58
271
  variant: 'information',
59
- children: 'This is a much longer toast message that demonstrates how the component handles extended content. It should wrap appropriately and maintain readability.',
272
+ children: 'Attendance report generated',
60
273
  },
61
- render: ToastWrapper,
62
- };
63
- export const MultipleToasts = {
64
- render: () => {
65
- const [infoOpen, setInfoOpen] = useState(false);
66
- const [successOpen, setSuccessOpen] = useState(false);
67
- const [warningOpen, setWarningOpen] = useState(false);
68
- const [dangerOpen, setDangerOpen] = useState(false);
69
- return (_jsxs(Toast.Provider, { children: [_jsxs("div", { style: { display: 'flex', gap: '8px', flexWrap: 'wrap' }, children: [_jsx(Button, { onClick: () => setInfoOpen(true), children: "Open Info" }), _jsx(Button, { onClick: () => setSuccessOpen(true), children: "Open Success" }), _jsx(Button, { onClick: () => setWarningOpen(true), children: "Open Warning" }), _jsx(Button, { onClick: () => setDangerOpen(true), children: "Open Danger" })] }), _jsx(Toast, { variant: "information", open: infoOpen, onOpenChange: setInfoOpen, children: "Information message" }), _jsx(Toast, { variant: "success", open: successOpen, onOpenChange: setSuccessOpen, children: "Success message" }), _jsx(Toast, { variant: "warning", open: warningOpen, onOpenChange: setWarningOpen, children: "Warning message" }), _jsx(Toast, { variant: "danger", open: dangerOpen, onOpenChange: setDangerOpen, children: "Error message" }), _jsx(Toast.Viewport, {})] }));
274
+ render: args => _jsx(DefaultTemplate, { ...args }),
275
+ parameters: {
276
+ docs: {
277
+ source: {
278
+ language: 'tsx',
279
+ code: `
280
+ import { Toast, Button } from '@arbor-education/design-system.components';
281
+ import { useState } from 'react';
282
+
283
+ // Toast.Provider and Toast.Viewport should be at your app root — mount them once.
284
+ function ToastDemo() {
285
+ const [open, setOpen] = useState(false);
286
+
287
+ return (
288
+ <Toast.Provider>
289
+ <Button onClick={() => setOpen(true)}>Show toast</Button>
290
+ <Toast variant="information" open={open} onOpenChange={setOpen}>
291
+ Attendance report generated
292
+ </Toast>
293
+ <Toast.Viewport />
294
+ </Toast.Provider>
295
+ );
296
+ }
297
+ export default ToastDemo;
298
+ `.trim(),
299
+ },
300
+ },
70
301
  },
71
- };
72
- export default meta;
302
+ }, [
303
+ 'The default `information` toast. Click the button to trigger it — it auto-dismisses after 5 seconds',
304
+ 'or can be closed manually with the X button.',
305
+ 'Tweak the **variant** and **children** controls to preview other variants.',
306
+ ].join(' '));
307
+ export const AllVariants = withDescription({
308
+ render: AllVariantsTemplate,
309
+ parameters: {
310
+ controls: { disable: true },
311
+ docs: {
312
+ source: {
313
+ language: 'tsx',
314
+ code: `
315
+ import { Toast, Button } from '@arbor-education/design-system.components';
316
+ import { useState } from 'react';
317
+
318
+ function AllVariantsDemo() {
319
+ const [infoOpen, setInfoOpen] = useState(false);
320
+ const [successOpen, setSuccessOpen] = useState(false);
321
+ const [warningOpen, setWarningOpen] = useState(false);
322
+ const [dangerOpen, setDangerOpen] = useState(false);
323
+
324
+ return (
325
+ <Toast.Provider>
326
+ <Button onClick={() => setInfoOpen(true)}>Information</Button>
327
+ <Button onClick={() => setSuccessOpen(true)}>Success</Button>
328
+ <Button onClick={() => setWarningOpen(true)}>Warning</Button>
329
+ <Button onClick={() => setDangerOpen(true)}>Danger</Button>
330
+
331
+ <Toast variant="information" open={infoOpen} onOpenChange={setInfoOpen}>
332
+ Attendance report generated
333
+ </Toast>
334
+ <Toast variant="success" open={successOpen} onOpenChange={setSuccessOpen}>
335
+ Assessment period saved
336
+ </Toast>
337
+ <Toast variant="warning" open={warningOpen} onOpenChange={setWarningOpen}>
338
+ Session expires in 5 minutes
339
+ </Toast>
340
+ <Toast variant="danger" open={dangerOpen} onOpenChange={setDangerOpen}>
341
+ Failed to save changes — please try again
342
+ </Toast>
343
+ <Toast.Viewport />
344
+ </Toast.Provider>
345
+ );
346
+ }
347
+ export default AllVariantsDemo;
348
+ `.trim(),
349
+ },
350
+ },
351
+ },
352
+ }, [
353
+ 'All four toast variants. Each has a dedicated icon and colour scheme:',
354
+ '**information** (ℹ blue) for neutral updates,',
355
+ '**success** (✓ green) for completed actions,',
356
+ '**warning** (⚠ amber) for non-blocking cautions,',
357
+ '**danger** (⚠ red) for failed operations.',
358
+ 'Multiple toasts can be open simultaneously — they stack in the viewport.',
359
+ ].join(' '));
360
+ export const ContentGuidelines = withDescription({
361
+ render: ContentGuidelinesTemplate,
362
+ parameters: {
363
+ controls: { disable: true },
364
+ docs: {
365
+ source: {
366
+ language: 'tsx',
367
+ code: `
368
+ // ✅ Ideal — 1 line, past tense, no trailing punctuation
369
+ <Toast variant="success" open={open} onOpenChange={setOpen}>
370
+ Assessment period saved
371
+ </Toast>
372
+
373
+ // ✅ Acceptable — 2 lines with brief context
374
+ <Toast variant="success" open={open} onOpenChange={setOpen}>
375
+ Assessment period saved. Pupils can now submit work for grading.
376
+ </Toast>
377
+
378
+ // ❌ Too long — switch to a Banner instead
379
+ <Toast variant="information" open={open} onOpenChange={setOpen}>
380
+ Assessment period saved. Pupils can now submit work for grading.
381
+ Remember to notify your department heads and check the term dates
382
+ align with your reporting schedule before the deadline.
383
+ </Toast>
384
+ `.trim(),
385
+ },
386
+ },
387
+ },
388
+ }, [
389
+ 'Toast messages should be **1 line ideally, 2 lines maximum**.',
390
+ 'If your message needs more space, use a `Banner` component instead.',
391
+ 'Keep copy short, past-tense where possible, and without trailing punctuation on single-sentence messages.',
392
+ 'Trigger each button to compare how different content lengths look in practice.',
393
+ ].join(' '));
394
+ export const WithCustomDuration = withDescription({
395
+ render: WithCustomDurationTemplate,
396
+ parameters: {
397
+ controls: { disable: true },
398
+ docs: {
399
+ source: {
400
+ language: 'tsx',
401
+ code: `
402
+ import { Toast, Button } from '@arbor-education/design-system.components';
403
+ import { useState } from 'react';
404
+
405
+ function CustomDurationDemo() {
406
+ const [open, setOpen] = useState(false);
407
+
408
+ return (
409
+ <Toast.Provider>
410
+ <Button onClick={() => setOpen(true)}>Show toast</Button>
411
+
412
+ {/* Per-toast duration overrides the provider default (5000ms) */}
413
+ <Toast variant="information" open={open} onOpenChange={setOpen} duration={10000}>
414
+ This stays visible for 10 seconds
415
+ </Toast>
416
+
417
+ {/* Pass Infinity to keep the toast open until manually dismissed */}
418
+ {/* <Toast duration={Infinity}>Persistent until closed</Toast> */}
419
+
420
+ <Toast.Viewport />
421
+ </Toast.Provider>
422
+ );
423
+ }
424
+ export default CustomDurationDemo;
425
+ `.trim(),
426
+ },
427
+ },
428
+ },
429
+ }, [
430
+ 'The `duration` prop controls how long the toast stays visible before auto-dismissing.',
431
+ 'It defaults to 5000 ms (5 seconds), inherited from `Toast.Provider`.',
432
+ 'Override per-toast by passing `duration` directly.',
433
+ 'Pass `duration={Infinity}` to keep the toast open until the user explicitly dismisses it.',
434
+ ].join(' '));
73
435
  //# sourceMappingURL=Toast.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.stories.js","sourceRoot":"","sources":["../../../src/components/toast/Toast.stories.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toast.stories.js","sourceRoot":"","sources":["../../../src/components/toast/Toast.stories.tsx"],"names":[],"mappings":"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"}