@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
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from '@storybook/addon-docs/blocks';
|
|
11
11
|
import { useState } from 'react';
|
|
12
12
|
import { fn } from 'storybook/test';
|
|
13
|
+
import { Icon } from 'Components/icon/Icon';
|
|
13
14
|
import { RadioButtonInput } from './RadioButtonInput';
|
|
14
15
|
import { RadioButtonGroup } from './RadioButtonGroup';
|
|
15
16
|
|
|
@@ -72,19 +73,26 @@ const DEVELOPER_NOTES = [
|
|
|
72
73
|
'#### 1. `hasError` is ARIA-only — it makes zero visual difference',
|
|
73
74
|
'`hasError={true}` sets `aria-invalid="true"` on the native `<input>`. There are NO CSS rules',
|
|
74
75
|
'that change the appearance of the indicator circle based on `aria-invalid`.',
|
|
75
|
-
'To show a visible error state,
|
|
76
|
-
'
|
|
76
|
+
'To show a visible error state, render an error message yourself below the group using',
|
|
77
|
+
'`FormField`\'s canonical markup — `.ds-form-field__message` wrapping a `.ds-form-field__message--error`',
|
|
78
|
+
'span with a `triangle-alert` `Icon`. This keeps radio errors visually consistent with text/number/select',
|
|
79
|
+
'fields wrapped in `FormField`. (`FormField` itself does not currently support `inputType="radio"`,',
|
|
80
|
+
'so you have to hand-roll the markup.)',
|
|
81
|
+
'See the `WithError` and `RadioGroupWithError` stories for the full pattern.',
|
|
77
82
|
'',
|
|
78
83
|
'```tsx',
|
|
79
84
|
'// WRONG — hasError alone shows no visible change',
|
|
80
85
|
'<RadioButtonInput hasError name="period" value="term" label="Current term" checked onChange={() => {}} />',
|
|
81
86
|
'',
|
|
82
|
-
'// CORRECT — pair hasError with
|
|
87
|
+
'// CORRECT — pair hasError with the canonical FormField error markup',
|
|
83
88
|
'<div>',
|
|
84
89
|
' <RadioButtonInput hasError name="period" value="term" label="Current term" checked onChange={() => {}} />',
|
|
85
|
-
' <
|
|
86
|
-
'
|
|
87
|
-
'
|
|
90
|
+
' <div className="ds-form-field__message">',
|
|
91
|
+
' <span className="ds-form-field__message--error" role="alert">',
|
|
92
|
+
' <Icon size={12} name="triangle-alert" />',
|
|
93
|
+
' Please select a valid report period.',
|
|
94
|
+
' </span>',
|
|
95
|
+
' </div>',
|
|
88
96
|
'</div>',
|
|
89
97
|
'```',
|
|
90
98
|
'',
|
|
@@ -395,21 +403,17 @@ const RadioGroupWithErrorTemplate = () => {
|
|
|
395
403
|
checkedValue={method}
|
|
396
404
|
onChange={e => setMethod(e.target.value)}
|
|
397
405
|
options={[
|
|
398
|
-
{ id: 'opt-email', value: 'email', label: 'Email'
|
|
399
|
-
{ id: 'opt-sms', value: 'sms', label: 'SMS'
|
|
400
|
-
{ id: 'opt-post', value: 'post', label: 'Post'
|
|
406
|
+
{ id: 'opt-email', value: 'email', label: 'Email' },
|
|
407
|
+
{ id: 'opt-sms', value: 'sms', label: 'SMS' },
|
|
408
|
+
{ id: 'opt-post', value: 'post', label: 'Post' },
|
|
401
409
|
]}
|
|
402
410
|
/>
|
|
403
|
-
<
|
|
404
|
-
role="alert"
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
}}
|
|
410
|
-
>
|
|
411
|
-
Please select a notification method to continue.
|
|
412
|
-
</p>
|
|
411
|
+
<div className="ds-form-field__message">
|
|
412
|
+
<span className="ds-form-field__message--error" role="alert">
|
|
413
|
+
<Icon size={12} name="triangle-alert" />
|
|
414
|
+
Please select a notification method to continue.
|
|
415
|
+
</span>
|
|
416
|
+
</div>
|
|
413
417
|
</div>
|
|
414
418
|
);
|
|
415
419
|
};
|
|
@@ -608,16 +612,12 @@ export const WithError: Story = withDescription(
|
|
|
608
612
|
onChange={fn()}
|
|
609
613
|
label="Full academic year"
|
|
610
614
|
/>
|
|
611
|
-
<
|
|
612
|
-
role="alert"
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
}}
|
|
618
|
-
>
|
|
619
|
-
Please select a report period to continue.
|
|
620
|
-
</p>
|
|
615
|
+
<div className="ds-form-field__message">
|
|
616
|
+
<span className="ds-form-field__message--error" role="alert">
|
|
617
|
+
<Icon size={12} name="triangle-alert" />
|
|
618
|
+
Please select a report period to continue.
|
|
619
|
+
</span>
|
|
620
|
+
</div>
|
|
621
621
|
</div>
|
|
622
622
|
),
|
|
623
623
|
parameters: {
|
|
@@ -625,12 +625,14 @@ export const WithError: Story = withDescription(
|
|
|
625
625
|
source: {
|
|
626
626
|
language: 'tsx',
|
|
627
627
|
code: `
|
|
628
|
-
import { RadioButtonInput } from '@arbor-education/design-system.components';
|
|
628
|
+
import { Icon, RadioButtonInput } from '@arbor-education/design-system.components';
|
|
629
629
|
|
|
630
630
|
function WithErrorExample() {
|
|
631
|
-
//
|
|
632
|
-
//
|
|
633
|
-
// the error
|
|
631
|
+
// hasError sets aria-invalid="true" on the <input> but makes NO visual change
|
|
632
|
+
// to the indicator circle — there are zero CSS rules for the error state.
|
|
633
|
+
// Render the error message yourself using FormField's canonical markup so the
|
|
634
|
+
// look matches text/number/select fields:
|
|
635
|
+
// .ds-form-field__message > .ds-form-field__message--error + triangle-alert Icon
|
|
634
636
|
return (
|
|
635
637
|
<div>
|
|
636
638
|
<RadioButtonInput
|
|
@@ -660,10 +662,12 @@ function WithErrorExample() {
|
|
|
660
662
|
onChange={() => {}}
|
|
661
663
|
label="Full academic year"
|
|
662
664
|
/>
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
665
|
+
<div className="ds-form-field__message">
|
|
666
|
+
<span className="ds-form-field__message--error" role="alert">
|
|
667
|
+
<Icon size={12} name="triangle-alert" />
|
|
668
|
+
Please select a report period to continue.
|
|
669
|
+
</span>
|
|
670
|
+
</div>
|
|
667
671
|
</div>
|
|
668
672
|
);
|
|
669
673
|
}
|
|
@@ -678,8 +682,11 @@ export default WithErrorExample;
|
|
|
678
682
|
'**Important:** `hasError={true}` sets `aria-invalid="true"` on the native `<input>` — this is',
|
|
679
683
|
'ARIA-only and makes zero visual difference to the indicator circle.',
|
|
680
684
|
'There are no CSS rules in the design system that change the indicator\'s appearance based on `aria-invalid`.',
|
|
681
|
-
'To communicate the error visually,
|
|
682
|
-
'
|
|
685
|
+
'To communicate the error visually, render your own message below the group using `FormField`\'s',
|
|
686
|
+
'canonical error markup — a `.ds-form-field__message` wrapper with a `.ds-form-field__message--error`',
|
|
687
|
+
'span containing a `triangle-alert` `Icon` and the error text (with `role="alert"` so screen readers',
|
|
688
|
+
'announce it automatically). Reusing this markup keeps radio errors visually consistent with',
|
|
689
|
+
'text/number/select fields wrapped in `FormField`.',
|
|
683
690
|
'Error validation should always be at the field level, not per-option.',
|
|
684
691
|
].join(' '),
|
|
685
692
|
);
|
|
@@ -938,15 +945,16 @@ export const RadioGroupWithError: Story = withDescription(
|
|
|
938
945
|
language: 'tsx',
|
|
939
946
|
code: `
|
|
940
947
|
import { useState } from 'react';
|
|
941
|
-
import { RadioButtonGroup } from '@arbor-education/design-system.components';
|
|
948
|
+
import { Icon, RadioButtonGroup } from '@arbor-education/design-system.components';
|
|
942
949
|
|
|
943
950
|
function NotificationMethodWithErrorExample() {
|
|
944
951
|
const [method, setMethod] = useState('');
|
|
945
952
|
|
|
946
|
-
//
|
|
947
|
-
//
|
|
948
|
-
//
|
|
949
|
-
//
|
|
953
|
+
// RadioButtonGroup has no per-option hasError API — its option type is
|
|
954
|
+
// { id, value, label } only. Communicate validation at the field level by
|
|
955
|
+
// rendering an error message below the group, matching FormField's canonical
|
|
956
|
+
// markup (.ds-form-field__message--error + triangle-alert Icon) so the look
|
|
957
|
+
// is consistent with the rest of the design system.
|
|
950
958
|
return (
|
|
951
959
|
<div>
|
|
952
960
|
<RadioButtonGroup
|
|
@@ -955,15 +963,17 @@ function NotificationMethodWithErrorExample() {
|
|
|
955
963
|
checkedValue={method}
|
|
956
964
|
onChange={(e) => setMethod(e.target.value)}
|
|
957
965
|
options={[
|
|
958
|
-
{ id: 'opt-email', value: 'email', label: 'Email'
|
|
959
|
-
{ id: 'opt-sms', value: 'sms', label: 'SMS'
|
|
960
|
-
{ id: 'opt-post', value: 'post', label: 'Post'
|
|
966
|
+
{ id: 'opt-email', value: 'email', label: 'Email' },
|
|
967
|
+
{ id: 'opt-sms', value: 'sms', label: 'SMS' },
|
|
968
|
+
{ id: 'opt-post', value: 'post', label: 'Post' },
|
|
961
969
|
]}
|
|
962
970
|
/>
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
971
|
+
<div className="ds-form-field__message">
|
|
972
|
+
<span className="ds-form-field__message--error" role="alert">
|
|
973
|
+
<Icon size={12} name="triangle-alert" />
|
|
974
|
+
Please select a notification method to continue.
|
|
975
|
+
</span>
|
|
976
|
+
</div>
|
|
967
977
|
</div>
|
|
968
978
|
);
|
|
969
979
|
}
|
|
@@ -975,13 +985,15 @@ export default NotificationMethodWithErrorExample;
|
|
|
975
985
|
},
|
|
976
986
|
},
|
|
977
987
|
[
|
|
978
|
-
'**Field-level validation
|
|
979
|
-
'
|
|
980
|
-
'
|
|
981
|
-
'
|
|
982
|
-
'
|
|
983
|
-
'
|
|
984
|
-
'
|
|
985
|
-
'
|
|
988
|
+
'**Field-level validation.** `RadioButtonGroup`\'s option type is `{ id, value, label }` only —',
|
|
989
|
+
'there is no per-option `hasError` and no group-level error prop.',
|
|
990
|
+
'To communicate an error, render your own message below the group using the same canonical markup',
|
|
991
|
+
'`FormField` produces: a `.ds-form-field__message` wrapper containing a `.ds-form-field__message--error`',
|
|
992
|
+
'span with a `triangle-alert` `Icon` and the error text. This keeps radio errors visually consistent',
|
|
993
|
+
'with text/number/select fields wrapped in `FormField`.',
|
|
994
|
+
'Note: `FormField` itself does not currently support `inputType="radio"`, so this hand-rolled',
|
|
995
|
+
'pattern is the recommended approach.',
|
|
996
|
+
'Start with no option selected — the error message is present; select any option to resolve the',
|
|
997
|
+
'validation in a real implementation.',
|
|
986
998
|
].join(' '),
|
|
987
999
|
);
|