@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.
- package/.gather/skills/write-stories/SKILL.md +207 -271
- package/.storybook/preview.ts +5 -0
- package/CHANGELOG.md +27 -0
- package/README.md +8 -0
- package/component-library.md +144 -13
- package/dist/components/articleCard/ArticleCard.stories.d.ts +137 -11
- package/dist/components/articleCard/ArticleCard.stories.d.ts.map +1 -1
- package/dist/components/articleCard/ArticleCard.stories.js +358 -91
- package/dist/components/articleCard/ArticleCard.stories.js.map +1 -1
- package/dist/components/avatar/Avatar.stories.d.ts +6 -6
- package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.stories.js +393 -49
- package/dist/components/avatar/Avatar.stories.js.map +1 -1
- package/dist/components/avatarGroup/AvatarGroup.stories.d.ts +9 -7
- package/dist/components/avatarGroup/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/components/avatarGroup/AvatarGroup.stories.js +688 -65
- package/dist/components/avatarGroup/AvatarGroup.stories.js.map +1 -1
- package/dist/components/banner/Banner.stories.d.ts.map +1 -1
- package/dist/components/banner/Banner.stories.js +7 -3
- package/dist/components/banner/Banner.stories.js.map +1 -1
- package/dist/components/card/Card.stories.d.ts +105 -4
- package/dist/components/card/Card.stories.d.ts.map +1 -1
- package/dist/components/card/Card.stories.js +336 -18
- package/dist/components/card/Card.stories.js.map +1 -1
- package/dist/components/combobox/Combobox.stories.d.ts +134 -21
- package/dist/components/combobox/Combobox.stories.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.stories.js +676 -175
- package/dist/components/combobox/Combobox.stories.js.map +1 -1
- package/dist/components/datePicker/DatePicker.stories.d.ts +119 -27
- package/dist/components/datePicker/DatePicker.stories.d.ts.map +1 -1
- package/dist/components/datePicker/DatePicker.stories.js +575 -47
- package/dist/components/datePicker/DatePicker.stories.js.map +1 -1
- package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts +155 -39
- package/dist/components/dateTimePicker/DateTimePicker.stories.d.ts.map +1 -1
- package/dist/components/dateTimePicker/DateTimePicker.stories.js +674 -103
- package/dist/components/dateTimePicker/DateTimePicker.stories.js.map +1 -1
- package/dist/components/editableText/EditableText.stories.d.ts +53 -12
- package/dist/components/editableText/EditableText.stories.d.ts.map +1 -1
- package/dist/components/editableText/EditableText.stories.js +401 -64
- package/dist/components/editableText/EditableText.stories.js.map +1 -1
- package/dist/components/formField/FormField.d.ts +4 -0
- package/dist/components/formField/FormField.d.ts.map +1 -1
- package/dist/components/formField/FormField.js +2 -1
- package/dist/components/formField/FormField.js.map +1 -1
- package/dist/components/formField/FormField.test.js +5 -0
- package/dist/components/formField/FormField.test.js.map +1 -1
- package/dist/components/formField/fieldset/Fieldset.stories.d.ts +56 -4
- package/dist/components/formField/fieldset/Fieldset.stories.d.ts.map +1 -1
- package/dist/components/formField/fieldset/Fieldset.stories.js +534 -28
- package/dist/components/formField/fieldset/Fieldset.stories.js.map +1 -1
- package/dist/components/formField/inputs/checkbox/CheckboxGroup.d.ts +3 -1
- package/dist/components/formField/inputs/checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/formField/inputs/checkbox/CheckboxInput.js +1 -1
- package/dist/components/formField/inputs/checkbox/CheckboxInput.js.map +1 -1
- package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.d.ts +95 -1
- package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.d.ts.map +1 -1
- package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.js +386 -9
- package/dist/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.js.map +1 -1
- package/dist/components/formField/inputs/number/NumberInput.d.ts.map +1 -1
- package/dist/components/formField/inputs/number/NumberInput.js +14 -2
- package/dist/components/formField/inputs/number/NumberInput.js.map +1 -1
- package/dist/components/formField/inputs/number/NumberInput.test.js +21 -0
- package/dist/components/formField/inputs/number/NumberInput.test.js.map +1 -1
- package/dist/components/formField/inputs/radio/RadioButtonGroup.d.ts +6 -2
- package/dist/components/formField/inputs/radio/RadioButtonGroup.d.ts.map +1 -1
- package/dist/components/formField/inputs/radio/RadioButtonGroup.js.map +1 -1
- package/dist/components/formField/inputs/radio/RadioButtonInput.stories.d.ts.map +1 -1
- package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js +61 -49
- package/dist/components/formField/inputs/radio/RadioButtonInput.stories.js.map +1 -1
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts +188 -166
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts.map +1 -1
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js +821 -160
- package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js.map +1 -1
- package/dist/components/formField/inputs/time/TimeInput.stories.d.ts +176 -22
- package/dist/components/formField/inputs/time/TimeInput.stories.d.ts.map +1 -1
- package/dist/components/formField/inputs/time/TimeInput.stories.js +851 -92
- package/dist/components/formField/inputs/time/TimeInput.stories.js.map +1 -1
- package/dist/components/formField/label/Label.stories.d.ts +54 -5
- package/dist/components/formField/label/Label.stories.d.ts.map +1 -1
- package/dist/components/formField/label/Label.stories.js +238 -4
- package/dist/components/formField/label/Label.stories.js.map +1 -1
- package/dist/components/icoText/IcoText.stories.d.ts +32 -6
- package/dist/components/icoText/IcoText.stories.d.ts.map +1 -1
- package/dist/components/icoText/IcoText.stories.js +309 -14
- package/dist/components/icoText/IcoText.stories.js.map +1 -1
- package/dist/components/kpiCard/KPICard.stories.d.ts +100 -2
- package/dist/components/kpiCard/KPICard.stories.d.ts.map +1 -1
- package/dist/components/kpiCard/KPICard.stories.js +354 -10
- package/dist/components/kpiCard/KPICard.stories.js.map +1 -1
- package/dist/components/kvpList/KVPList.stories.d.ts +57 -4
- package/dist/components/kvpList/KVPList.stories.d.ts.map +1 -1
- package/dist/components/kvpList/KVPList.stories.js +403 -10
- package/dist/components/kvpList/KVPList.stories.js.map +1 -1
- package/dist/components/modal/Modal.stories.d.ts +113 -9
- package/dist/components/modal/Modal.stories.d.ts.map +1 -1
- package/dist/components/modal/Modal.stories.js +633 -13
- package/dist/components/modal/Modal.stories.js.map +1 -1
- package/dist/components/modal/modalManager/ModalManager.stories.d.ts +34 -10
- package/dist/components/modal/modalManager/ModalManager.stories.d.ts.map +1 -1
- package/dist/components/modal/modalManager/ModalManager.stories.js +463 -85
- package/dist/components/modal/modalManager/ModalManager.stories.js.map +1 -1
- package/dist/components/pill/Pill.d.ts.map +1 -1
- package/dist/components/pill/Pill.js +1 -1
- package/dist/components/pill/Pill.js.map +1 -1
- package/dist/components/pill/Pill.stories.d.ts.map +1 -1
- package/dist/components/pill/Pill.stories.js +11 -13
- package/dist/components/pill/Pill.stories.js.map +1 -1
- package/dist/components/row/Row.stories.d.ts +1 -2
- package/dist/components/row/Row.stories.d.ts.map +1 -1
- package/dist/components/row/Row.stories.js +360 -50
- package/dist/components/row/Row.stories.js.map +1 -1
- package/dist/components/searchBar/SearchBar.stories.d.ts +52 -4
- package/dist/components/searchBar/SearchBar.stories.d.ts.map +1 -1
- package/dist/components/searchBar/SearchBar.stories.js +428 -36
- package/dist/components/searchBar/SearchBar.stories.js.map +1 -1
- package/dist/components/section/Section.stories.d.ts +11 -41
- package/dist/components/section/Section.stories.d.ts.map +1 -1
- package/dist/components/section/Section.stories.js +494 -56
- package/dist/components/section/Section.stories.js.map +1 -1
- package/dist/components/singleUser/SingleUser.stories.d.ts +5 -4
- package/dist/components/singleUser/SingleUser.stories.d.ts.map +1 -1
- package/dist/components/singleUser/SingleUser.stories.js +303 -31
- package/dist/components/singleUser/SingleUser.stories.js.map +1 -1
- package/dist/components/slideoverManager/SlideoverManager.stories.d.ts +32 -11
- package/dist/components/slideoverManager/SlideoverManager.stories.d.ts.map +1 -1
- package/dist/components/slideoverManager/SlideoverManager.stories.js +380 -84
- package/dist/components/slideoverManager/SlideoverManager.stories.js.map +1 -1
- package/dist/components/table/DSDefaultColDef.d.ts.map +1 -1
- package/dist/components/table/DSDefaultColDef.js +4 -3
- package/dist/components/table/DSDefaultColDef.js.map +1 -1
- package/dist/components/table/Table.d.ts +7 -1
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +12 -5
- package/dist/components/table/Table.js.map +1 -1
- package/dist/components/table/Table.stories.d.ts +3 -0
- package/dist/components/table/Table.stories.d.ts.map +1 -1
- package/dist/components/table/Table.stories.js +445 -3
- package/dist/components/table/Table.stories.js.map +1 -1
- package/dist/components/table/Table.test.js +184 -0
- package/dist/components/table/Table.test.js.map +1 -1
- package/dist/components/table/TableFooter.stories.d.ts +49 -0
- package/dist/components/table/TableFooter.stories.d.ts.map +1 -0
- package/dist/components/table/TableFooter.stories.js +137 -0
- package/dist/components/table/TableFooter.stories.js.map +1 -0
- package/dist/components/table/TableHeader.stories.d.ts +93 -0
- package/dist/components/table/TableHeader.stories.d.ts.map +1 -0
- package/dist/components/table/TableHeader.stories.js +176 -0
- package/dist/components/table/TableHeader.stories.js.map +1 -0
- package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts +44 -0
- package/dist/components/table/cellEditors/DateCellEditor.stories.d.ts.map +1 -0
- package/dist/components/table/cellEditors/DateCellEditor.stories.js +186 -0
- package/dist/components/table/cellEditors/DateCellEditor.stories.js.map +1 -0
- package/dist/components/table/cellEditors/NumberCellEditor.d.ts +13 -0
- package/dist/components/table/cellEditors/NumberCellEditor.d.ts.map +1 -0
- package/dist/components/table/cellEditors/NumberCellEditor.js +35 -0
- package/dist/components/table/cellEditors/NumberCellEditor.js.map +1 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts +40 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js +209 -0
- package/dist/components/table/cellRenderers/BooleanCellRenderer.stories.js.map +1 -0
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts +48 -0
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js +244 -0
- package/dist/components/table/cellRenderers/ButtonCellRenderer.stories.js.map +1 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.d.ts.map +1 -1
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.js +3 -1
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.js.map +1 -1
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts +64 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js +241 -0
- package/dist/components/table/cellRenderers/CheckboxCellRenderer.stories.js.map +1 -0
- package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts +55 -0
- package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js +245 -0
- package/dist/components/table/cellRenderers/DefaultCellRenderer.stories.js.map +1 -0
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts +67 -0
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js +221 -0
- package/dist/components/table/cellRenderers/InlineTextCellRenderer.stories.js.map +1 -0
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts +75 -0
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.d.ts.map +1 -0
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js +270 -0
- package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.stories.js.map +1 -0
- package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts +57 -0
- package/dist/components/table/columnFilters/BooleanFilter.stories.d.ts.map +1 -0
- package/dist/components/table/columnFilters/BooleanFilter.stories.js +198 -0
- package/dist/components/table/columnFilters/BooleanFilter.stories.js.map +1 -0
- package/dist/components/table/columnFilters/TimeFilter.stories.d.ts +58 -0
- package/dist/components/table/columnFilters/TimeFilter.stories.d.ts.map +1 -0
- package/dist/components/table/columnFilters/TimeFilter.stories.js +207 -0
- package/dist/components/table/columnFilters/TimeFilter.stories.js.map +1 -0
- package/dist/components/table/pagination/PaginationPanel.stories.d.ts +113 -0
- package/dist/components/table/pagination/PaginationPanel.stories.d.ts.map +1 -0
- package/dist/components/table/pagination/PaginationPanel.stories.js +272 -0
- package/dist/components/table/pagination/PaginationPanel.stories.js.map +1 -0
- package/dist/components/table/tableControls/TableControls.stories.d.ts +151 -0
- package/dist/components/table/tableControls/TableControls.stories.d.ts.map +1 -0
- package/dist/components/table/tableControls/TableControls.stories.js +356 -0
- package/dist/components/table/tableControls/TableControls.stories.js.map +1 -0
- package/dist/components/table/tableControls/TableSettingsDropdown.d.ts +27 -1
- package/dist/components/table/tableControls/TableSettingsDropdown.d.ts.map +1 -1
- package/dist/components/table/tableControls/TableSettingsDropdown.js +53 -26
- package/dist/components/table/tableControls/TableSettingsDropdown.js.map +1 -1
- package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts +2 -0
- package/dist/components/table/tableControls/TableSettingsDropdown.test.d.ts.map +1 -0
- package/dist/components/table/tableControls/TableSettingsDropdown.test.js +178 -0
- package/dist/components/table/tableControls/TableSettingsDropdown.test.js.map +1 -0
- package/dist/components/tabs/Tabs.stories.d.ts +22 -4
- package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.stories.js +398 -22
- package/dist/components/tabs/Tabs.stories.js.map +1 -1
- package/dist/components/tabs/TabsItem.stories.d.ts +54 -1
- package/dist/components/tabs/TabsItem.stories.d.ts.map +1 -1
- package/dist/components/tabs/TabsItem.stories.js +61 -9
- package/dist/components/tabs/TabsItem.stories.js.map +1 -1
- package/dist/components/toast/Toast.stories.d.ts +103 -10
- package/dist/components/toast/Toast.stories.d.ts.map +1 -1
- package/dist/components/toast/Toast.stories.js +409 -47
- package/dist/components/toast/Toast.stories.js.map +1 -1
- package/dist/components/toggle/Toggle.stories.d.ts +61 -46
- package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.stories.js +311 -122
- package/dist/components/toggle/Toggle.stories.js.map +1 -1
- package/dist/components/tooltip/Tooltip.stories.d.ts +78 -6
- package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.stories.js +413 -7
- package/dist/components/tooltip/Tooltip.stories.js.map +1 -1
- package/dist/components/tooltip/TooltipWrapper.stories.d.ts +71 -7
- package/dist/components/tooltip/TooltipWrapper.stories.d.ts.map +1 -1
- package/dist/components/tooltip/TooltipWrapper.stories.js +238 -10
- package/dist/components/tooltip/TooltipWrapper.stories.js.map +1 -1
- package/dist/index.css +27 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/PopupParentContext.stories.d.ts +17 -0
- package/dist/utils/PopupParentContext.stories.d.ts.map +1 -0
- package/dist/utils/PopupParentContext.stories.js +266 -0
- package/dist/utils/PopupParentContext.stories.js.map +1 -0
- package/dist/utils/getDefaultPopupParent.d.ts.map +1 -1
- package/dist/utils/getDefaultPopupParent.js +6 -0
- package/dist/utils/getDefaultPopupParent.js.map +1 -1
- package/package.json +1 -1
- package/src/components/articleCard/ArticleCard.stories.tsx +524 -111
- package/src/components/avatar/Avatar.stories.tsx +504 -59
- package/src/components/avatarGroup/AvatarGroup.stories.tsx +977 -175
- package/src/components/banner/Banner.stories.tsx +7 -3
- package/src/components/card/Card.stories.tsx +466 -36
- package/src/components/combobox/Combobox.stories.tsx +867 -260
- package/src/components/datePicker/DatePicker.stories.tsx +777 -60
- package/src/components/dateTimePicker/DateTimePicker.stories.tsx +910 -132
- package/src/components/editableText/EditableText.stories.tsx +567 -91
- package/src/components/formField/FormField.test.tsx +6 -0
- package/src/components/formField/FormField.tsx +5 -0
- package/src/components/formField/fieldset/Fieldset.stories.tsx +761 -51
- package/src/components/formField/inputs/checkbox/CheckboxGroup.tsx +1 -1
- package/src/components/formField/inputs/checkbox/CheckboxInput.tsx +1 -1
- package/src/components/formField/inputs/colourPickerDropdown/ColourPickerDropdown.stories.tsx +504 -11
- package/src/components/formField/inputs/number/NumberInput.test.tsx +28 -0
- package/src/components/formField/inputs/number/NumberInput.tsx +15 -0
- package/src/components/formField/inputs/radio/RadioButtonGroup.tsx +17 -4
- package/src/components/formField/inputs/radio/RadioButtonInput.stories.tsx +71 -59
- package/src/components/formField/inputs/selectDropdown/SelectDropdown.stories.tsx +1079 -168
- package/src/components/formField/inputs/time/TimeInput.stories.tsx +1140 -104
- package/src/components/formField/label/Label.stories.tsx +317 -8
- package/src/components/icoText/IcoText.stories.tsx +442 -31
- package/src/components/kpiCard/KPICard.stories.tsx +475 -30
- package/src/components/kvpList/KVPList.stories.tsx +593 -26
- package/src/components/modal/Modal.stories.tsx +963 -26
- package/src/components/modal/modalManager/ModalManager.stories.tsx +612 -454
- package/src/components/pill/Pill.stories.tsx +11 -13
- package/src/components/pill/Pill.tsx +1 -0
- package/src/components/row/Row.stories.tsx +474 -58
- package/src/components/searchBar/SearchBar.stories.tsx +570 -38
- package/src/components/section/Section.stories.tsx +723 -70
- package/src/components/singleUser/SingleUser.stories.tsx +393 -34
- package/src/components/slideoverManager/SlideoverManager.stories.tsx +572 -342
- package/src/components/table/DSDefaultColDef.ts +25 -5
- package/src/components/table/Table.stories.tsx +504 -3
- package/src/components/table/Table.test.tsx +255 -0
- package/src/components/table/Table.tsx +15 -2
- package/src/components/table/TableFooter.stories.tsx +196 -0
- package/src/components/table/TableHeader.stories.tsx +251 -0
- package/src/components/table/cellEditors/DateCellEditor.stories.tsx +245 -0
- package/src/components/table/cellEditors/NumberCellEditor.tsx +83 -0
- package/src/components/table/cellEditors/numberCellEditor.scss +11 -0
- package/src/components/table/cellRenderers/BooleanCellRenderer.stories.tsx +278 -0
- package/src/components/table/cellRenderers/ButtonCellRenderer.stories.tsx +333 -0
- package/src/components/table/cellRenderers/CheckboxCellRenderer.stories.tsx +337 -0
- package/src/components/table/cellRenderers/CheckboxCellRenderer.tsx +5 -1
- package/src/components/table/cellRenderers/DefaultCellRenderer.stories.tsx +342 -0
- package/src/components/table/cellRenderers/InlineTextCellRenderer.stories.tsx +292 -0
- package/src/components/table/cellRenderers/SelectDropdownCellRenderer.stories.tsx +369 -0
- package/src/components/table/columnFilters/BooleanFilter.stories.tsx +268 -0
- package/src/components/table/columnFilters/TimeFilter.stories.tsx +281 -0
- package/src/components/table/pagination/PaginationPanel.stories.tsx +327 -0
- package/src/components/table/table.scss +11 -0
- package/src/components/table/tableControls/TableControls.stories.tsx +415 -0
- package/src/components/table/tableControls/TableSettingsDropdown.test.tsx +207 -0
- package/src/components/table/tableControls/TableSettingsDropdown.tsx +103 -39
- package/src/components/tabs/Tabs.stories.tsx +540 -60
- package/src/components/tabs/TabsItem.stories.tsx +82 -8
- package/src/components/toast/Toast.stories.tsx +539 -77
- package/src/components/toggle/Toggle.stories.tsx +371 -135
- package/src/components/tooltip/Tooltip.stories.tsx +606 -15
- package/src/components/tooltip/TooltipWrapper.stories.tsx +348 -12
- package/src/docs/Contributing.mdx +241 -0
- package/src/docs/UsingComponents.mdx +93 -0
- package/src/docs/Welcome.mdx +68 -0
- package/src/global.scss +7 -0
- package/src/index.scss +1 -0
- package/src/index.ts +3 -2
- package/src/utils/PopupParentContext.stories.tsx +367 -0
- package/src/utils/getDefaultPopupParent.ts +6 -0
- package/.ralph/storybook-upgrade/knowledge.md +0 -308
- package/.ralph/storybook-upgrade/prd.json +0 -777
- package/.ralph/storybook-upgrade/progress.md +0 -342
- package/src/components/table/TableWIP.mdx +0 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
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';
|
|
2
3
|
import {} from 'ag-grid-enterprise';
|
|
3
4
|
import { Table } from './Table';
|
|
4
5
|
import { Button } from '../button/Button';
|
|
@@ -12,14 +13,317 @@ import { Modal } from '../modal/Modal';
|
|
|
12
13
|
import { ModalUtils } from '../../utils/ModalUtils';
|
|
13
14
|
import { BooleanFilter, doesBooleanFilterPass, } from './columnFilters/BooleanFilter/BooleanFilter';
|
|
14
15
|
import { doesTimeFilterPass, TimeFilter, } from './columnFilters/TimeFilter/TimeFilter';
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Content strings for the custom DocsPage
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
const DESCRIPTION_INTRO = [
|
|
20
|
+
'`Table` is an enterprise-grade data table built on top of [AG Grid React](https://www.ag-grid.com/react-data-grid/).',
|
|
21
|
+
'It wraps `AgGridReact` with Arbor design tokens, a custom theme, built-in search, pagination, bulk actions,',
|
|
22
|
+
'hide-columns, and a suite of custom cell renderers and column filters.',
|
|
23
|
+
'All AG Grid props pass through via `...rest`, so the full AG Grid API is available.',
|
|
24
|
+
].join(' ');
|
|
25
|
+
const PROPS_INTRO = 'The preview below is wired to the **Controls** panel — tweak any DS-specific prop to see the story update in real time.';
|
|
26
|
+
const USAGE_GUIDANCE = [
|
|
27
|
+
'### When to use',
|
|
28
|
+
'',
|
|
29
|
+
'- Displaying large, structured datasets where users need to sort, filter, search, or paginate.',
|
|
30
|
+
'- Any screen in Arbor that renders rows of records (pupil lists, staff registers, attendance grids, marksheets).',
|
|
31
|
+
'- When cells need interactive controls — buttons, dropdowns, checkboxes, date pickers.',
|
|
32
|
+
'- When column visibility, row selection, and bulk actions are required.',
|
|
33
|
+
'',
|
|
34
|
+
'---',
|
|
35
|
+
'',
|
|
36
|
+
'### When NOT to use',
|
|
37
|
+
'',
|
|
38
|
+
'| Situation | Use instead |',
|
|
39
|
+
'|---|---|',
|
|
40
|
+
'| A small read-only list of key–value pairs | [`Section`](?path=/docs/components-section--docs) with [`Row`](?path=/docs/components-row--docs) components |',
|
|
41
|
+
'| A two-column data summary (label + value) | [`Row`](?path=/docs/components-row--docs) inside a `Section` |',
|
|
42
|
+
'| Simple static HTML tables | Native `<table>` with semantic markup |',
|
|
43
|
+
'| A handful of rows that never change | Native `<table>` — AG Grid has overhead |',
|
|
44
|
+
].join('\n');
|
|
45
|
+
const DEVELOPER_NOTES = [
|
|
46
|
+
'### AG Grid license',
|
|
47
|
+
'',
|
|
48
|
+
'`setAgGridLicenseKey()` is called automatically inside the `Table` component.',
|
|
49
|
+
'You do **not** need to call it yourself.',
|
|
50
|
+
'',
|
|
51
|
+
'---',
|
|
52
|
+
'',
|
|
53
|
+
'### Registered cell renderers',
|
|
54
|
+
'',
|
|
55
|
+
'These string keys are pre-registered and available in any `cellRenderer` or `cellRendererParams`:',
|
|
56
|
+
'',
|
|
57
|
+
'| Key | Component | Purpose |',
|
|
58
|
+
'|---|---|---|',
|
|
59
|
+
'| `dsButtonCellRenderer` | `Table.ButtonCellRenderer` | Renders a `Button` inside a cell |',
|
|
60
|
+
'| `dsInlineTextCellRenderer` | `Table.InlineTextCellRenderer` | Inline text editing with expand/collapse support |',
|
|
61
|
+
'| `dsSelectDropdownCellRenderer` | `Table.SelectDropdownCellRenderer` | Renders a `SelectDropdown` in a cell |',
|
|
62
|
+
'| `dsBooleanCellRenderer` | `Table.BooleanCellRenderer` | Read-only boolean display |',
|
|
63
|
+
'| `dsCheckboxCellRenderer` | `Table.CheckboxCellRenderer` | Editable boolean checkbox |',
|
|
64
|
+
'| `dsDateCellEditor` | `Table.DateCellEditor` | Date picker cell editor |',
|
|
65
|
+
'',
|
|
66
|
+
'---',
|
|
67
|
+
'',
|
|
68
|
+
'### Registered column filters',
|
|
69
|
+
'',
|
|
70
|
+
'| Import | `doesFilterPass` helper | Use case |',
|
|
71
|
+
'|---|---|---|',
|
|
72
|
+
'| `BooleanFilter` | `doesBooleanFilterPass` | Filtering boolean / active columns |',
|
|
73
|
+
'| `TimeFilter` | `doesTimeFilterPass` | Filtering time string columns |',
|
|
74
|
+
'',
|
|
75
|
+
'---',
|
|
76
|
+
'',
|
|
77
|
+
'### Header and footer slots',
|
|
78
|
+
'',
|
|
79
|
+
'- `headerContent` — pass any `ReactNode` here; the `<TableHeader>` wraps it with a built-in search bar.',
|
|
80
|
+
' Use `Table.TableControls` for the standard toolbar (bulk actions, hide columns, settings, download, help, expand).',
|
|
81
|
+
'- `hasSearch` (default `true`) — controls whether the search bar is rendered inside the header.',
|
|
82
|
+
' Set to `false` when the header has no search functionality.',
|
|
83
|
+
'- `footerContent` — pass any `ReactNode` here; the `<TableFooter>` wraps it.',
|
|
84
|
+
' Use `Table.PaginationPanel` for standard pagination.',
|
|
85
|
+
'',
|
|
86
|
+
'---',
|
|
87
|
+
'',
|
|
88
|
+
'### TableSettingsDropdown customisation',
|
|
89
|
+
'',
|
|
90
|
+
'`Table.TableSettingsDropdown` accepts an optional `items` prop to control which controls are shown and in what order.',
|
|
91
|
+
'Omit `items` (or omit any key) to hide that control entirely.',
|
|
92
|
+
'',
|
|
93
|
+
'```tsx',
|
|
94
|
+
'// Built-in keys — use any subset in any order:',
|
|
95
|
+
'<Table.TableSettingsDropdown items={[\'tableSpacing\', \'separator\', \'style\']} />',
|
|
96
|
+
'',
|
|
97
|
+
'// Custom checkbox group:',
|
|
98
|
+
'<Table.TableSettingsDropdown items={[',
|
|
99
|
+
' \'tableSpacing\',',
|
|
100
|
+
' { type: \'checkboxGroup\', legend: \'View options\', options: [',
|
|
101
|
+
' { label: \'Show inactive\', checked: showInactive, onChange: setShowInactive },',
|
|
102
|
+
' ] },',
|
|
103
|
+
']} />',
|
|
104
|
+
'',
|
|
105
|
+
'// Custom radio group:',
|
|
106
|
+
'<Table.TableSettingsDropdown items={[',
|
|
107
|
+
' { type: \'radioGroup\', legend: \'Display\', name: \'display\', checkedValue: view, onChange: setView,',
|
|
108
|
+
' options: [{ label: \'Compact\', value: \'compact\' }, { label: \'Default\', value: \'default\' }] },',
|
|
109
|
+
']} />',
|
|
110
|
+
'```',
|
|
111
|
+
'',
|
|
112
|
+
'Use `Table.SettingsItems` to access the default items array and extend it:',
|
|
113
|
+
'',
|
|
114
|
+
'```tsx',
|
|
115
|
+
'const myItems = [...Table.SettingsItems, { type: \'checkboxGroup\', options: [...] }];',
|
|
116
|
+
'<Table.TableSettingsDropdown items={myItems} />',
|
|
117
|
+
'```',
|
|
118
|
+
'',
|
|
119
|
+
'Use `onTableSettingsReset` on `Table` to reset your custom state when the reset button is clicked.',
|
|
120
|
+
'',
|
|
121
|
+
'---',
|
|
122
|
+
'',
|
|
123
|
+
'### Themes',
|
|
124
|
+
'',
|
|
125
|
+
'| Value | Description |',
|
|
126
|
+
'|---|---|',
|
|
127
|
+
'| _(omit)_ | Default Arbor table theme with full spacing and borders |',
|
|
128
|
+
'| `"tidy"` | Compact theme for dense layouts like marksheets. Suppresses expand/collapse icons. |',
|
|
129
|
+
'',
|
|
130
|
+
'---',
|
|
131
|
+
'',
|
|
132
|
+
'### Table spacing',
|
|
133
|
+
'',
|
|
134
|
+
'Use `Table.Spacing` (enum `TABLE_SPACING`) when handling `onTableSpacingChanged`:',
|
|
135
|
+
'',
|
|
136
|
+
'```ts',
|
|
137
|
+
"import { Table } from '@arbor-education/design-system.components';",
|
|
138
|
+
'',
|
|
139
|
+
'// Table.Spacing values:',
|
|
140
|
+
'// Table.Spacing.XS → 0',
|
|
141
|
+
'// Table.Spacing.S → var(--spacing-xsmall)',
|
|
142
|
+
'// Table.Spacing.M → var(--spacing-small) ← default',
|
|
143
|
+
'// Table.Spacing.L → var(--spacing-medium)',
|
|
144
|
+
'```',
|
|
145
|
+
'',
|
|
146
|
+
'---',
|
|
147
|
+
'',
|
|
148
|
+
'### GridApiContext',
|
|
149
|
+
'',
|
|
150
|
+
'Child components that need the AG Grid `GridApi` can consume `Table.GridApiContext`:',
|
|
151
|
+
'',
|
|
152
|
+
'```tsx',
|
|
153
|
+
"import { useContext } from 'react';",
|
|
154
|
+
"import { Table } from '@arbor-education/design-system.components';",
|
|
155
|
+
'',
|
|
156
|
+
'function MyTableChild() {',
|
|
157
|
+
' const gridApi = useContext(Table.GridApiContext);',
|
|
158
|
+
' return <button onClick={() => gridApi?.exportDataAsCsv()}>Export</button>;',
|
|
159
|
+
'}',
|
|
160
|
+
'```',
|
|
161
|
+
'',
|
|
162
|
+
'---',
|
|
163
|
+
'',
|
|
164
|
+
'### DefaultColDef and DefaultValueFormatter',
|
|
165
|
+
'',
|
|
166
|
+
'`Table.DefaultColDef` contains Arbor defaults (editable, sortable, resizable, min-width, flex).',
|
|
167
|
+
'Spread it into your `defaultColDef` and add overrides:',
|
|
168
|
+
'',
|
|
169
|
+
'```ts',
|
|
170
|
+
'const defaultColDef = {',
|
|
171
|
+
' ...Table.DefaultColDef,',
|
|
172
|
+
' editable: false, // override',
|
|
173
|
+
'};',
|
|
174
|
+
'```',
|
|
175
|
+
'',
|
|
176
|
+
'`Table.DefaultValueFormatter` handles the `{ value: string }` cell data shape.',
|
|
177
|
+
'Any column using the object cell shape (`{ value, backgroundColor, foregroundColor, semanticColor }`) **must** use this formatter.',
|
|
178
|
+
'',
|
|
179
|
+
'---',
|
|
180
|
+
'',
|
|
181
|
+
'### TypeScript types',
|
|
182
|
+
'',
|
|
183
|
+
'```ts',
|
|
184
|
+
"import { Table } from '@arbor-education/design-system.components';",
|
|
185
|
+
"import type { TableProps, TableControlsProps, BulkAction, HideColumnsProps } from '@arbor-education/design-system.components';",
|
|
186
|
+
'',
|
|
187
|
+
'// or via namespace:',
|
|
188
|
+
'type MyTableProps = Table.Props;',
|
|
189
|
+
'type MyControlsProps = Table.ControlsProps;',
|
|
190
|
+
'type MyBulkAction = Table.BulkAction;',
|
|
191
|
+
'type MySpacing = Table.Spacing;',
|
|
192
|
+
'',
|
|
193
|
+
'// Table.SettingsItems — the default settings items array (spread to extend):',
|
|
194
|
+
'const myItems = [...Table.SettingsItems, { type: \'checkboxGroup\' as const, options: [] }];',
|
|
195
|
+
'```',
|
|
196
|
+
].join('\n');
|
|
197
|
+
const RELATED_COMPONENTS = [
|
|
198
|
+
'## Related components',
|
|
199
|
+
'',
|
|
200
|
+
'[Section](?path=/docs/components-section--docs) · [Row](?path=/docs/components-row--docs) · [Button](?path=/docs/components-button--docs) · [SelectDropdown](?path=/docs/components-selectdropdown--docs)',
|
|
201
|
+
].join('\n');
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
203
|
+
// Custom DocsPage
|
|
204
|
+
// ---------------------------------------------------------------------------
|
|
205
|
+
function TableDocsPage() {
|
|
206
|
+
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 })] }));
|
|
207
|
+
}
|
|
208
|
+
// ---------------------------------------------------------------------------
|
|
209
|
+
// Meta
|
|
210
|
+
// ---------------------------------------------------------------------------
|
|
15
211
|
const meta = {
|
|
16
212
|
title: 'Components/Table',
|
|
17
213
|
component: Table,
|
|
18
214
|
tags: ['autodocs'],
|
|
19
215
|
parameters: {
|
|
216
|
+
layout: 'padded',
|
|
20
217
|
docs: {
|
|
21
|
-
|
|
22
|
-
|
|
218
|
+
page: TableDocsPage,
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
argTypes: {
|
|
222
|
+
wrapperClassName: {
|
|
223
|
+
description: 'Additional CSS class names applied to the root `<section>` wrapper.',
|
|
224
|
+
control: 'text',
|
|
225
|
+
table: {
|
|
226
|
+
type: { summary: 'string' },
|
|
227
|
+
defaultValue: { summary: 'undefined' },
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
hasSearch: {
|
|
231
|
+
description: [
|
|
232
|
+
'When `true` (the default) a quick-filter search bar is rendered inside the header area.',
|
|
233
|
+
'Set to `false` when using `headerContent` without a search requirement,',
|
|
234
|
+
'or when you want to suppress the search bar entirely.',
|
|
235
|
+
].join(' '),
|
|
236
|
+
control: 'boolean',
|
|
237
|
+
table: {
|
|
238
|
+
type: { summary: 'boolean' },
|
|
239
|
+
defaultValue: { summary: 'true' },
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
headerContent: {
|
|
243
|
+
description: [
|
|
244
|
+
'ReactNode rendered inside the `<TableHeader>` above the grid.',
|
|
245
|
+
'Use `Table.TableControls` for the standard composed toolbar.',
|
|
246
|
+
'The built-in search bar appears here when `hasSearch` is `true`.',
|
|
247
|
+
].join(' '),
|
|
248
|
+
control: false,
|
|
249
|
+
table: {
|
|
250
|
+
type: { summary: 'ReactNode' },
|
|
251
|
+
defaultValue: { summary: 'undefined' },
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
footerContent: {
|
|
255
|
+
description: [
|
|
256
|
+
'ReactNode rendered inside the `<TableFooter>` below the grid.',
|
|
257
|
+
'Use `Table.PaginationPanel` for standard client-side or server-side pagination.',
|
|
258
|
+
].join(' '),
|
|
259
|
+
control: false,
|
|
260
|
+
table: {
|
|
261
|
+
type: { summary: 'ReactNode' },
|
|
262
|
+
defaultValue: { summary: 'undefined' },
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
tableTheme: {
|
|
266
|
+
description: [
|
|
267
|
+
'Visual theme for the grid.',
|
|
268
|
+
'Pass `"tidy"` for the compact marksheet-style theme.',
|
|
269
|
+
'Omit (or pass `undefined`) for the default Arbor table theme.',
|
|
270
|
+
].join(' '),
|
|
271
|
+
control: 'select',
|
|
272
|
+
options: [undefined, 'tidy'],
|
|
273
|
+
table: {
|
|
274
|
+
type: { summary: "'tidy' | undefined" },
|
|
275
|
+
defaultValue: { summary: 'undefined' },
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
enableSimultaneousRangeAndRowSelection: {
|
|
279
|
+
description: [
|
|
280
|
+
'When `true`, allows both cell-range selection and row selection to be active at the same time.',
|
|
281
|
+
'Default `false` — drag selection clears row selection.',
|
|
282
|
+
].join(' '),
|
|
283
|
+
control: 'boolean',
|
|
284
|
+
table: {
|
|
285
|
+
type: { summary: 'boolean' },
|
|
286
|
+
defaultValue: { summary: 'false' },
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
disableDragSelect: {
|
|
290
|
+
description: 'When `true`, disables drag-to-select behaviour on cell range selection.',
|
|
291
|
+
control: 'boolean',
|
|
292
|
+
table: {
|
|
293
|
+
type: { summary: 'boolean' },
|
|
294
|
+
defaultValue: { summary: 'false' },
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
onTableSettingsChanged: {
|
|
298
|
+
description: 'Fired when the user changes table settings (column borders, spacing, cell colours) via the settings dropdown.',
|
|
299
|
+
control: false,
|
|
300
|
+
table: {
|
|
301
|
+
type: { summary: '(settings: TableSettings) => void' },
|
|
302
|
+
defaultValue: { summary: 'undefined' },
|
|
303
|
+
},
|
|
304
|
+
},
|
|
305
|
+
onTableSpacingChanged: {
|
|
306
|
+
description: 'Fired when the user changes row spacing. Receives a `Table.Spacing` (TABLE_SPACING) enum value.',
|
|
307
|
+
control: false,
|
|
308
|
+
table: {
|
|
309
|
+
type: { summary: '(val: TABLE_SPACING) => void' },
|
|
310
|
+
defaultValue: { summary: 'undefined' },
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
onColumnBordersChanged: {
|
|
314
|
+
description: 'Fired when the user toggles column borders on or off via the settings dropdown.',
|
|
315
|
+
control: false,
|
|
316
|
+
table: {
|
|
317
|
+
type: { summary: '(hasBorders: boolean) => void' },
|
|
318
|
+
defaultValue: { summary: 'undefined' },
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
onTableSettingsReset: {
|
|
322
|
+
description: 'Fired when the user resets all table settings to their defaults.',
|
|
323
|
+
control: false,
|
|
324
|
+
table: {
|
|
325
|
+
type: { summary: '() => void' },
|
|
326
|
+
defaultValue: { summary: 'undefined' },
|
|
23
327
|
},
|
|
24
328
|
},
|
|
25
329
|
},
|
|
@@ -31,6 +335,7 @@ const sampleData = [
|
|
|
31
335
|
email: { value: 'alice.johnson@example.com' },
|
|
32
336
|
role: { value: 'Developer' },
|
|
33
337
|
status: { value: 'Active' },
|
|
338
|
+
marks: 84,
|
|
34
339
|
active: true,
|
|
35
340
|
time: '2026-01-28 12:00:00',
|
|
36
341
|
dateOfBirth: new Date(1990, 0, 1),
|
|
@@ -41,6 +346,7 @@ const sampleData = [
|
|
|
41
346
|
email: { value: 'bob.smith@example.com' },
|
|
42
347
|
role: { value: 'Designer' },
|
|
43
348
|
status: { value: 'Active' },
|
|
349
|
+
marks: 76,
|
|
44
350
|
active: false,
|
|
45
351
|
time: '2026-01-28 13:00:00',
|
|
46
352
|
dateOfBirth: new Date(1991, 1, 2),
|
|
@@ -51,6 +357,7 @@ const sampleData = [
|
|
|
51
357
|
email: { value: 'charlie.brown@example.com' },
|
|
52
358
|
role: { value: 'Manager' },
|
|
53
359
|
status: { value: 'Inactive' },
|
|
360
|
+
marks: 92,
|
|
54
361
|
active: true,
|
|
55
362
|
time: '2026-01-28 14:00:00',
|
|
56
363
|
dateOfBirth: new Date(1992, 2, 3),
|
|
@@ -61,6 +368,7 @@ const sampleData = [
|
|
|
61
368
|
email: { value: 'diana.prince@example.com' },
|
|
62
369
|
role: { value: 'Developer' },
|
|
63
370
|
status: { value: 'Active' },
|
|
371
|
+
marks: 88,
|
|
64
372
|
active: false,
|
|
65
373
|
time: '2026-01-28 15:00:00',
|
|
66
374
|
dateOfBirth: new Date(1993, 3, 4),
|
|
@@ -71,6 +379,7 @@ const sampleData = [
|
|
|
71
379
|
email: { value: 'ethan.hunt@example.com' },
|
|
72
380
|
role: { value: 'Analyst' },
|
|
73
381
|
status: { value: 'Active' },
|
|
382
|
+
marks: 69,
|
|
74
383
|
active: false,
|
|
75
384
|
time: '2026-01-28 16:00:00',
|
|
76
385
|
dateOfBirth: new Date(1994, 4, 5),
|
|
@@ -118,6 +427,17 @@ const sampleColumnDefs = [
|
|
|
118
427
|
valueFormatter: Table.DefaultValueFormatter,
|
|
119
428
|
},
|
|
120
429
|
{ field: 'status', valueFormatter: Table.DefaultValueFormatter },
|
|
430
|
+
{
|
|
431
|
+
field: 'marks',
|
|
432
|
+
cellDataType: 'number',
|
|
433
|
+
cellEditor: 'dsNumberCellEditor',
|
|
434
|
+
cellEditorParams: {
|
|
435
|
+
min: 0,
|
|
436
|
+
max: 100,
|
|
437
|
+
step: 1,
|
|
438
|
+
disableSpinners: false,
|
|
439
|
+
},
|
|
440
|
+
},
|
|
121
441
|
{
|
|
122
442
|
field: 'active',
|
|
123
443
|
filter: { component: BooleanFilter, doesFilterPass: doesBooleanFilterPass },
|
|
@@ -131,6 +451,58 @@ const sampleColumnDefs = [
|
|
|
131
451
|
editable: false,
|
|
132
452
|
},
|
|
133
453
|
];
|
|
454
|
+
const verticalHeaderTextColumnDefs = [
|
|
455
|
+
{
|
|
456
|
+
headerName: 'Details',
|
|
457
|
+
children: [
|
|
458
|
+
{
|
|
459
|
+
field: 'name',
|
|
460
|
+
headerName: 'Preferred Learner Name',
|
|
461
|
+
filter: 'agSetColumnFilter',
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
field: 'email',
|
|
465
|
+
headerName: 'Primary Contact Email Address',
|
|
466
|
+
filter: 'agSetColumnFilter',
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
field: 'role',
|
|
470
|
+
headerName: 'Role',
|
|
471
|
+
filter: 'agSetColumnFilter',
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
field: 'dateOfBirth',
|
|
475
|
+
headerName: 'Date of Birth',
|
|
476
|
+
filter: 'agDateColumnFilter',
|
|
477
|
+
filterParams: { buttons: ['clear', 'apply'] },
|
|
478
|
+
valueFormatter: params => params.value instanceof Date
|
|
479
|
+
? params.value.toLocaleDateString()
|
|
480
|
+
: params.value,
|
|
481
|
+
},
|
|
482
|
+
],
|
|
483
|
+
valueFormatter: Table.DefaultValueFormatter,
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
field: 'status',
|
|
487
|
+
headerName: 'Current Enrollment Status',
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
field: 'marks',
|
|
491
|
+
headerName: 'Overall Score (%)',
|
|
492
|
+
cellDataType: 'number',
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
field: 'active',
|
|
496
|
+
headerName: 'Active?',
|
|
497
|
+
cellDataType: 'boolean',
|
|
498
|
+
editable: false,
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
field: 'time',
|
|
502
|
+
headerName: 'Most Recent Activity Timestamp',
|
|
503
|
+
editable: false,
|
|
504
|
+
},
|
|
505
|
+
];
|
|
134
506
|
const footerContent = [
|
|
135
507
|
_jsx(Button, { variant: "primary", children: "Button 1" }, 0),
|
|
136
508
|
_jsx(RowCountInfo, {}, 3),
|
|
@@ -150,6 +522,26 @@ export const Default = {
|
|
|
150
522
|
cellSelection: true,
|
|
151
523
|
},
|
|
152
524
|
};
|
|
525
|
+
export const WithVerticalHeaderText = {
|
|
526
|
+
parameters: {
|
|
527
|
+
docs: {
|
|
528
|
+
description: {
|
|
529
|
+
story: 'Use the `verticalHeaderText` prop when columns are narrow and header labels need to remain readable.',
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
},
|
|
533
|
+
args: {
|
|
534
|
+
rowData: sampleData,
|
|
535
|
+
columnDefs: verticalHeaderTextColumnDefs,
|
|
536
|
+
defaultColDef: {
|
|
537
|
+
...defaultColDef,
|
|
538
|
+
wrapHeaderText: true,
|
|
539
|
+
autoHeaderHeight: true,
|
|
540
|
+
},
|
|
541
|
+
domLayout: 'autoHeight',
|
|
542
|
+
verticalHeaderText: true,
|
|
543
|
+
},
|
|
544
|
+
};
|
|
153
545
|
export const WithFooter = {
|
|
154
546
|
args: {
|
|
155
547
|
rowData: sampleData,
|
|
@@ -1376,6 +1768,56 @@ const checkboxColumnDefs = [
|
|
|
1376
1768
|
editable: false,
|
|
1377
1769
|
},
|
|
1378
1770
|
];
|
|
1771
|
+
export const WithTableSettingsDropdownItems = {
|
|
1772
|
+
parameters: {
|
|
1773
|
+
docs: {
|
|
1774
|
+
description: {
|
|
1775
|
+
story: 'Pass an `items` array to control exactly which controls appear. Only the items you include will be shown. Available keys: `tableSpacing`, `separator`, `style`.',
|
|
1776
|
+
},
|
|
1777
|
+
},
|
|
1778
|
+
},
|
|
1779
|
+
args: {
|
|
1780
|
+
rowData: sampleData,
|
|
1781
|
+
columnDefs: sampleColumnDefs,
|
|
1782
|
+
defaultColDef,
|
|
1783
|
+
domLayout: 'autoHeight',
|
|
1784
|
+
headerContent: (_jsx(Table.TableSettingsDropdown, { items: ['tableSpacing'] })),
|
|
1785
|
+
},
|
|
1786
|
+
};
|
|
1787
|
+
export const WithTableSettingsDropdownCustomItems = {
|
|
1788
|
+
parameters: {
|
|
1789
|
+
docs: {
|
|
1790
|
+
description: {
|
|
1791
|
+
story: 'Pass an `items` array with any mix of built-in keys and custom item objects in any order. Built-in keys: `tableSpacing`, `separator`, `style`. For custom items, use `{ type: "checkboxGroup", legend?, options }` for a group of toggles or `{ type: "radioGroup", legend?, name, checkedValue, onChange, options }` for mutually exclusive options. Custom item state is managed externally. Use `onTableSettingsReset` on the Table to reset custom state when the reset button is clicked.',
|
|
1792
|
+
},
|
|
1793
|
+
},
|
|
1794
|
+
},
|
|
1795
|
+
args: {
|
|
1796
|
+
rowData: sampleData,
|
|
1797
|
+
columnDefs: sampleColumnDefs,
|
|
1798
|
+
defaultColDef,
|
|
1799
|
+
domLayout: 'autoHeight',
|
|
1800
|
+
},
|
|
1801
|
+
render: (args) => {
|
|
1802
|
+
const [showInactive, setShowInactive] = useState(false);
|
|
1803
|
+
const filteredData = showInactive
|
|
1804
|
+
? args.rowData
|
|
1805
|
+
: args.rowData?.filter((row) => row.active);
|
|
1806
|
+
return (_jsx(Table, { ...args, rowData: filteredData, onTableSettingsReset: () => setShowInactive(false), headerContent: (_jsx(Table.TableSettingsDropdown, { items: [
|
|
1807
|
+
'tableSpacing',
|
|
1808
|
+
'separator',
|
|
1809
|
+
'style',
|
|
1810
|
+
'separator',
|
|
1811
|
+
{
|
|
1812
|
+
type: 'checkboxGroup',
|
|
1813
|
+
legend: 'View options',
|
|
1814
|
+
options: [
|
|
1815
|
+
{ label: 'Show inactive users', checked: showInactive, onChange: setShowInactive },
|
|
1816
|
+
],
|
|
1817
|
+
},
|
|
1818
|
+
] })) }));
|
|
1819
|
+
},
|
|
1820
|
+
};
|
|
1379
1821
|
export const WithCheckboxCellRenderer = {
|
|
1380
1822
|
parameters: {
|
|
1381
1823
|
docs: {
|