@iress-oss/ids-components 6.0.0-alpha.3 → 6.0.0-alpha.30
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/.ai/components/alert.md +141 -0
- package/.ai/components/autocomplete-recipes.md +35 -0
- package/.ai/components/autocomplete.md +305 -0
- package/.ai/components/button-group.md +132 -0
- package/.ai/components/button.md +326 -0
- package/.ai/components/card.md +254 -0
- package/.ai/components/checkbox-group-recipes.md +20 -0
- package/.ai/components/checkbox-group.md +160 -0
- package/.ai/components/checkbox.md +153 -0
- package/.ai/components/col.md +285 -0
- package/.ai/components/container.md +62 -0
- package/.ai/components/divider.md +96 -0
- package/.ai/components/expander.md +84 -0
- package/.ai/components/field.md +445 -0
- package/.ai/components/icon.md +655 -0
- package/.ai/components/image.md +54 -0
- package/.ai/components/inline.md +144 -0
- package/.ai/components/input-currency-recipes.md +32 -0
- package/.ai/components/input-currency.md +93 -0
- package/.ai/components/input-recipes.md +32 -0
- package/.ai/components/input.md +274 -0
- package/.ai/components/label.md +81 -0
- package/.ai/components/link.md +95 -0
- package/.ai/components/menu-item.md +140 -0
- package/.ai/components/menu.md +285 -0
- package/.ai/components/modal.md +256 -0
- package/.ai/components/panel.md +49 -0
- package/.ai/components/pill.md +83 -0
- package/.ai/components/placeholder.md +36 -0
- package/.ai/components/popover-recipes.md +80 -0
- package/.ai/components/popover.md +216 -0
- package/.ai/components/progress.md +103 -0
- package/.ai/components/provider.md +46 -0
- package/.ai/components/radio-group.md +170 -0
- package/.ai/components/radio.md +78 -0
- package/.ai/components/readonly.md +51 -0
- package/.ai/components/row.md +126 -0
- package/.ai/components/skeleton-recipes.md +20 -0
- package/.ai/components/skeleton.md +103 -0
- package/.ai/components/skip-link.md +32 -0
- package/.ai/components/slideout.md +250 -0
- package/.ai/components/slider.md +126 -0
- package/.ai/components/spinner.md +68 -0
- package/.ai/components/stack.md +121 -0
- package/.ai/components/styled.md +214 -0
- package/.ai/components/tab-set.md +119 -0
- package/.ai/components/tab.md +71 -0
- package/.ai/components/table.md +356 -0
- package/.ai/components/tag.md +93 -0
- package/.ai/components/text.md +195 -0
- package/.ai/components/toaster.md +101 -0
- package/.ai/components/toggle.md +127 -0
- package/.ai/components/tooltip.md +190 -0
- package/.ai/components/validation-message.md +100 -0
- package/.ai/guides/foundations-accessibility.md +38 -0
- package/.ai/guides/foundations-consistency.md +45 -0
- package/.ai/guides/foundations-content.md +22 -0
- package/.ai/guides/foundations-iconography.md +107 -0
- package/.ai/guides/foundations-principles.md +61 -0
- package/.ai/guides/foundations-responsive.md +735 -0
- package/.ai/guides/foundations-user-experience.md +52 -0
- package/.ai/guides/foundations-visual-design.md +41 -0
- package/.ai/guides/foundations-zindex.md +22 -0
- package/.ai/guides/get-started-develop.md +47 -0
- package/.ai/guides/migration-guides-v5.md +247 -0
- package/.ai/guides/styling-props-accessibility.md +48 -0
- package/.ai/guides/styling-props-colour.md +139 -0
- package/.ai/guides/styling-props-layout.md +172 -0
- package/.ai/guides/styling-props-radius.md +39 -0
- package/.ai/guides/styling-props-reference.md +305 -0
- package/.ai/guides/styling-props-sizing.md +80 -0
- package/.ai/guides/styling-props-spacing.md +279 -0
- package/.ai/guides/styling-props-typography.md +153 -0
- package/.ai/index.json +598 -0
- package/.ai/patterns/breadcrumbs.md +164 -0
- package/.ai/patterns/contextual-menu.md +131 -0
- package/.ai/patterns/dropdown-menu.md +195 -0
- package/.ai/patterns/form-recipes.md +160 -0
- package/.ai/patterns/form.md +619 -0
- package/.ai/patterns/loading.md +315 -0
- package/.ai/patterns/shadow.md +37 -0
- package/.ai/patterns/side-nav.md +142 -0
- package/.ai/skills/figma-to-ids.md +252 -0
- package/.ai/skills/ui-doctor.md +733 -0
- package/.ai/skills/ui-translation.md +231 -0
- package/dist/Autocomplete-BRMDwwwT.js +402 -0
- package/dist/Button-C0p8bEXn.js +581 -0
- package/dist/Provider-uPW2d6U5.js +49 -0
- package/dist/TableProvider-CNduJwA4.js +82 -0
- package/dist/components/Alert/Alert.d.ts +71 -0
- package/dist/components/Alert/Alert.js +77 -68
- package/dist/components/Alert/Alert.styles.d.ts +238 -0
- package/dist/components/Alert/Alert.styles.js +202 -74
- package/dist/components/Autocomplete/Autocomplete.d.ts +52 -0
- package/dist/components/Autocomplete/Autocomplete.js +14 -22
- package/dist/components/Autocomplete/Autocomplete.styles.js +6 -2
- package/dist/components/Autocomplete/components/AutocompleteInstructions.d.ts +10 -0
- package/dist/components/Autocomplete/components/AutocompleteInstructions.js +6 -6
- package/dist/components/Autocomplete/hooks/useAutocompleteSearch.d.ts +83 -0
- package/dist/components/Autocomplete/hooks/useAutocompleteSearch.js +152 -133
- package/dist/components/Autocomplete/index.js +1 -1
- package/dist/components/Button/Button.d.ts +103 -0
- package/dist/components/Button/Button.js +15 -6
- package/dist/components/Button/CloseButton/CloseButton.js +18 -18
- package/dist/components/Button/index.js +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +38 -0
- package/dist/components/ButtonGroup/ButtonGroup.js +47 -36
- package/dist/components/ButtonGroup/ButtonGroup.styles.js +1 -1
- package/dist/components/Card/Card.d.ts +57 -0
- package/dist/components/Card/Card.js +78 -63
- package/dist/components/Card/Card.styles.d.ts +80 -0
- package/dist/components/Card/Card.styles.js +18 -13
- package/dist/components/Checkbox/Checkbox.d.ts +71 -0
- package/dist/components/Checkbox/Checkbox.js +97 -82
- package/dist/components/Checkbox/Checkbox.styles.d.ts +68 -0
- package/dist/components/Checkbox/Checkbox.styles.js +68 -58
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +56 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.js +53 -54
- package/dist/components/CheckboxGroup/CheckboxGroup.styles.js +1 -1
- package/dist/components/CheckboxMark/CheckboxMark.d.ts +19 -0
- package/dist/components/CheckboxMark/CheckboxMark.js +22 -36
- package/dist/components/CheckboxMark/CheckboxMark.styles.js +13 -11
- package/dist/components/Col/Col.d.ts +27 -0
- package/dist/components/Col/Col.js +7 -6
- package/dist/components/Col/Col.styles.d.ts +1 -0
- package/dist/components/Col/Col.styles.js +4 -19
- package/dist/components/Container/Container.d.ts +16 -0
- package/dist/components/Container/Container.js +8 -7
- package/dist/components/Container/Container.styles.d.ts +39 -0
- package/dist/components/Container/Container.styles.js +15 -12
- package/dist/components/Divider/Divider.d.ts +11 -0
- package/dist/components/Divider/Divider.js +22 -17
- package/dist/components/Divider/Divider.styles.d.ts +23 -0
- package/dist/components/Divider/Divider.styles.js +18 -4
- package/dist/components/Expander/Expander.d.ts +34 -0
- package/dist/components/Expander/Expander.js +61 -47
- package/dist/components/Expander/Expander.styles.d.ts +60 -0
- package/dist/components/Expander/Expander.styles.js +47 -34
- package/dist/components/Field/Field.d.ts +60 -0
- package/dist/components/Field/Field.js +30 -29
- package/dist/components/Field/Field.styles.d.ts +88 -0
- package/dist/components/Field/Field.styles.js +13 -5
- package/dist/components/Field/FieldGroup/FieldGroup.d.ts +20 -0
- package/dist/components/Field/FieldGroup/FieldGroup.js +19 -18
- package/dist/components/Field/FieldGroup/FieldGroup.styles.d.ts +81 -0
- package/dist/components/Field/FieldGroup/FieldGroup.styles.js +13 -13
- package/dist/components/Field/components/FieldFooter.d.ts +25 -0
- package/dist/components/Field/components/FieldFooter.js +41 -31
- package/dist/components/Field/components/FieldHint.d.ts +30 -0
- package/dist/components/Field/components/FieldHint.js +15 -13
- package/dist/components/Hide/Hide.d.ts +30 -0
- package/dist/components/Hide/Hide.js +11 -16
- package/dist/components/Hide/helpers/normaliseHideValues.d.ts +4 -0
- package/dist/components/Hide/helpers/normaliseHideValues.js +6 -4
- package/dist/components/Icon/Icon.constants.d.ts +9 -0
- package/dist/components/Icon/Icon.constants.js +12 -0
- package/dist/components/Icon/Icon.d.ts +57 -0
- package/dist/components/Icon/Icon.js +70 -30
- package/dist/components/Icon/Icon.styles.d.ts +62 -0
- package/dist/components/Icon/Icon.styles.js +39 -4
- package/dist/components/Icon/IconProvider.d.ts +100 -0
- package/dist/components/Icon/IconProvider.js +66 -0
- package/dist/components/Icon/components/FontLoader.d.ts +31 -0
- package/dist/components/Icon/components/FontLoader.js +29 -0
- package/dist/components/Icon/helpers/getMaterialSymbolsList.d.ts +12 -0
- package/dist/components/Icon/helpers/getMaterialSymbolsList.js +12 -0
- package/dist/components/Icon/helpers/iconMapping.d.ts +78 -0
- package/dist/components/Icon/helpers/iconMapping.js +75 -0
- package/dist/components/Icon/hooks/useDynamicFontSubsetting.d.ts +45 -0
- package/dist/components/Icon/hooks/useDynamicFontSubsetting.js +78 -0
- package/dist/components/Icon/index.d.ts +4 -0
- package/dist/components/Icon/index.js +6 -2
- package/dist/components/Image/Image.d.ts +19 -0
- package/dist/components/Image/Image.js +18 -17
- package/dist/components/Image/Image.styles.js +1 -1
- package/dist/components/Inline/Inline.d.ts +34 -0
- package/dist/components/Inline/Inline.js +5 -4
- package/dist/components/Inline/Inline.styles.js +1 -1
- package/dist/components/Input/Input.d.ts +78 -0
- package/dist/components/Input/Input.js +140 -110
- package/dist/components/Input/Input.styles.d.ts +151 -0
- package/dist/components/Input/Input.styles.js +107 -34
- package/dist/components/Input/InputBase/InputBase.d.ts +41 -0
- package/dist/components/Input/InputBase/InputBase.js +16 -15
- package/dist/components/InputCurrency/InputCurrency.d.ts +30 -0
- package/dist/components/InputCurrency/InputCurrency.js +25 -24
- package/dist/components/Label/Label.d.ts +22 -0
- package/dist/components/Label/Label.js +4 -3
- package/dist/components/Label/Label.styles.js +5 -5
- package/dist/components/Label/LabelBase/LabelBase.d.ts +31 -0
- package/dist/components/Label/LabelBase/LabelBase.js +38 -32
- package/dist/components/Link/Link.d.ts +44 -0
- package/dist/components/Link/Link.js +45 -45
- package/dist/components/Link/Link.styles.d.ts +29 -0
- package/dist/components/Link/Link.styles.js +5 -11
- package/dist/components/Menu/Menu.d.ts +134 -0
- package/dist/components/Menu/Menu.js +91 -64
- package/dist/components/Menu/Menu.styles.d.ts +77 -0
- package/dist/components/Menu/Menu.styles.js +27 -159
- package/dist/components/Menu/MenuDivider/MenuDivider.d.ts +6 -0
- package/dist/components/Menu/MenuDivider/MenuDivider.js +13 -12
- package/dist/components/Menu/MenuGroup/MenuGroup.d.ts +59 -0
- package/dist/components/Menu/MenuGroup/MenuGroup.js +127 -0
- package/dist/components/Menu/MenuGroup/MenuGroup.styles.d.ts +39 -0
- package/dist/components/Menu/MenuGroup/MenuGroup.styles.js +94 -0
- package/dist/components/Menu/MenuItem/MenuItem.d.ts +111 -0
- package/dist/components/Menu/MenuItem/MenuItem.js +180 -119
- package/dist/components/Menu/MenuItem/MenuItem.styles.d.ts +170 -0
- package/dist/components/Menu/MenuItem/MenuItem.styles.js +286 -0
- package/dist/components/Menu/MenuItem/hooks/useMenuItemRole.js +10 -6
- package/dist/components/Menu/MenuText/MenuText.d.ts +25 -0
- package/dist/components/Menu/MenuText/MenuText.js +49 -46
- package/dist/components/Menu/index.d.ts +9 -0
- package/dist/components/Menu/index.js +15 -9
- package/dist/components/Modal/Modal.d.ts +84 -0
- package/dist/components/Modal/Modal.js +44 -42
- package/dist/components/Modal/Modal.styles.d.ts +110 -0
- package/dist/components/Modal/Modal.styles.js +38 -8
- package/dist/components/Modal/ModalProvider.d.ts +13 -0
- package/dist/components/Modal/ModalProvider.js +20 -19
- package/dist/components/Panel/Panel.d.ts +6 -0
- package/dist/components/Panel/Panel.js +12 -8
- package/dist/components/Panel/index.d.ts +1 -0
- package/dist/components/Panel/index.js +1 -3
- package/dist/components/Pill/Pill.d.ts +18 -0
- package/dist/components/Pill/Pill.js +29 -0
- package/dist/components/Pill/Pill.styles.d.ts +56 -0
- package/dist/components/Pill/Pill.styles.js +83 -0
- package/dist/components/Pill/index.d.ts +2 -0
- package/dist/components/Pill/index.js +6 -0
- package/dist/components/Placeholder/Placeholder.d.ts +28 -0
- package/dist/components/Placeholder/Placeholder.js +55 -26
- package/dist/components/Placeholder/Placeholder.styles.d.ts +1 -0
- package/dist/components/Placeholder/Placeholder.styles.js +13 -9
- package/dist/components/Popover/InputPopover/InputPopover.d.ts +21 -0
- package/dist/components/Popover/InputPopover/InputPopover.js +67 -67
- package/dist/components/Popover/InputPopover/InputPopoverActivator.d.ts +12 -0
- package/dist/components/Popover/InputPopover/InputPopoverActivator.js +23 -22
- package/dist/components/Popover/Popover.d.ts +100 -0
- package/dist/components/Popover/Popover.js +52 -48
- package/dist/components/Popover/Popover.styles.js +6 -4
- package/dist/components/Popover/components/PopoverActivator.d.ts +9 -0
- package/dist/components/Popover/components/PopoverActivator.js +23 -22
- package/dist/components/Popover/components/PopoverContent.d.ts +19 -0
- package/dist/components/Popover/components/PopoverContent.js +59 -47
- package/dist/components/Popover/helpers/composeFloatingProps.d.ts +16 -0
- package/dist/components/Popover/helpers/composeFloatingProps.js +15 -17
- package/dist/components/Popover/helpers/handlePopoverTabKey.d.ts +8 -0
- package/dist/components/Popover/helpers/handlePopoverTabKey.js +32 -21
- package/dist/components/Popover/hooks/useFloatingPopover.d.ts +192 -0
- package/dist/components/Popover/hooks/useFloatingPopover.js +145 -0
- package/dist/components/Popover/hooks/usePopover.d.ts +5 -0
- package/dist/components/Popover/hooks/usePopover.js +4 -141
- package/dist/components/Popover/hooks/usePopoverActivatorInteractions.d.ts +15 -0
- package/dist/components/Popover/hooks/usePopoverActivatorInteractions.js +12 -11
- package/dist/components/Popover/hooks/usePopoverImperativeHandle.d.ts +20 -0
- package/dist/components/Popover/hooks/usePopoverItem.d.ts +39 -0
- package/dist/components/Popover/hooks/usePopoverItem.js +4 -4
- package/dist/components/Popover/hooks/usePopoverNavigation.js +14 -13
- package/dist/components/Popover/index.d.ts +8 -0
- package/dist/components/Popover/index.js +4 -2
- package/dist/components/Progress/Progress.d.ts +52 -0
- package/dist/components/Progress/Progress.js +39 -36
- package/dist/components/Progress/Progress.styles.js +10 -2
- package/dist/components/Provider/Provider.d.ts +31 -0
- package/dist/components/Provider/Provider.js +9 -8
- package/dist/components/Provider/index.js +1 -1
- package/dist/components/Radio/Radio.d.ts +52 -0
- package/dist/components/Radio/Radio.js +87 -90
- package/dist/components/Radio/Radio.styles.d.ts +56 -0
- package/dist/components/Radio/Radio.styles.js +68 -153
- package/dist/components/RadioGroup/RadioGroup.d.ts +58 -0
- package/dist/components/RadioGroup/RadioGroup.js +65 -66
- package/dist/components/RadioGroup/RadioGroup.styles.d.ts +41 -0
- package/dist/components/RadioGroup/RadioGroup.styles.js +2 -11
- package/dist/components/RadioMark/RadioMark.d.ts +19 -0
- package/dist/components/RadioMark/RadioMark.js +31 -0
- package/dist/components/RadioMark/RadioMark.styles.d.ts +15 -0
- package/dist/components/RadioMark/RadioMark.styles.js +45 -0
- package/dist/components/RadioMark/index.d.ts +2 -0
- package/dist/components/RadioMark/index.js +6 -0
- package/dist/components/Readonly/Readonly.d.ts +16 -0
- package/dist/components/Readonly/Readonly.js +17 -16
- package/dist/components/Readonly/Readonly.styles.d.ts +106 -0
- package/dist/components/Readonly/Readonly.styles.js +12 -12
- package/dist/components/Row/Row.d.ts +31 -0
- package/dist/components/Row/Row.js +7 -6
- package/dist/components/Row/Row.styles.js +1 -1
- package/dist/components/Select/Select.d.ts +175 -0
- package/dist/components/Select/Select.js +22 -94
- package/dist/components/Select/Select.styles.d.ts +59 -0
- package/dist/components/Select/Select.styles.js +49 -74
- package/dist/components/Select/SelectBody/SelectBody.d.ts +16 -0
- package/dist/components/Select/SelectBody/SelectBody.js +30 -0
- package/dist/components/Select/SelectBody/SelectBody.styles.js +23 -0
- package/dist/components/Select/SelectCreate/SelectCreate.d.ts +32 -0
- package/dist/components/Select/SelectCreate/SelectCreate.js +43 -0
- package/dist/components/Select/SelectHeading/SelectHeading.d.ts +20 -0
- package/dist/components/Select/SelectHeading/SelectHeading.js +78 -0
- package/dist/components/Select/SelectLabel/SelectLabel.d.ts +7 -0
- package/dist/components/Select/SelectLabel/SelectLabel.js +51 -0
- package/dist/components/Select/SelectLabel/SelectLabel.styles.d.ts +15 -0
- package/dist/components/Select/SelectLabel/SelectLabel.styles.js +73 -0
- package/dist/components/Select/SelectMenu/SelectMenu.d.ts +55 -0
- package/dist/components/Select/SelectMenu/SelectMenu.js +195 -0
- package/dist/components/Select/SelectMenu/SelectMenu.styles.js +16 -0
- package/dist/components/Select/SelectMenu/SelectMenuItem.d.ts +5 -0
- package/dist/components/Select/SelectMenu/SelectMenuItem.js +67 -0
- package/dist/components/Select/SelectSearch/SelectSearch.d.ts +6 -0
- package/dist/components/Select/SelectSearch/SelectSearch.js +45 -0
- package/dist/components/Select/SelectSearch/SelectSearch.styles.js +28 -0
- package/dist/components/Select/SelectSearchInput/SelectSearchInput.js +47 -0
- package/dist/components/Select/SelectSearchInput/SelectSearchInput.styles.js +26 -0
- package/dist/components/Select/SelectTags/SelectTags.d.ts +35 -0
- package/dist/components/Select/SelectTags/SelectTags.js +174 -0
- package/dist/components/Select/SelectTags/SelectTags.styles.d.ts +16 -0
- package/dist/components/Select/SelectTags/SelectTags.styles.js +73 -0
- package/dist/components/Select/components/NativeSelect.d.ts +50 -0
- package/dist/components/Select/components/NativeSelect.js +89 -0
- package/dist/components/Select/components/NativeSelect.styles.d.ts +101 -0
- package/dist/components/Select/components/NativeSelect.styles.js +133 -0
- package/dist/components/Select/components/SelectActivator.d.ts +41 -0
- package/dist/components/Select/components/SelectActivator.js +69 -0
- package/dist/components/Select/components/SelectHiddenInput.d.ts +30 -0
- package/dist/components/Select/components/SelectHiddenInput.js +32 -0
- package/dist/components/Select/components/SelectOptions.d.ts +11 -0
- package/dist/components/Select/components/SelectOptions.js +219 -0
- package/dist/components/Select/hooks/useSelectState.d.ts +17 -0
- package/dist/components/Select/hooks/useSelectState.js +18 -0
- package/dist/components/Select/index.d.ts +11 -0
- package/dist/components/Select/index.js +22 -6
- package/dist/components/Skeleton/Skeleton.d.ts +28 -0
- package/dist/components/Skeleton/Skeleton.js +11 -10
- package/dist/components/Skeleton/Skeleton.styles.js +2 -2
- package/dist/components/SkipLink/SkipLink.d.ts +19 -0
- package/dist/components/SkipLink/SkipLink.js +13 -12
- package/dist/components/SkipLink/SkipLink.styles.js +1 -1
- package/dist/components/Slideout/Slideout.d.ts +85 -0
- package/dist/components/Slideout/Slideout.js +38 -37
- package/dist/components/Slideout/Slideout.styles.d.ts +64 -0
- package/dist/components/Slideout/Slideout.styles.js +15 -14
- package/dist/components/Slideout/SlideoutProvider.d.ts +13 -0
- package/dist/components/Slideout/SlideoutProvider.js +16 -15
- package/dist/components/Slideout/components/SlideoutInner.d.ts +13 -0
- package/dist/components/Slideout/components/SlideoutInner.js +24 -23
- package/dist/components/Slideout/hooks/usePushElement.js +1 -1
- package/dist/components/Slider/Slider.js +9 -8
- package/dist/components/Slider/Slider.styles.js +7 -13
- package/dist/components/Slider/components/SliderTicks.d.ts +61 -0
- package/dist/components/Slider/components/SliderTicks.js +33 -30
- package/dist/components/Spinner/Spinner.d.ts +31 -0
- package/dist/components/Spinner/Spinner.js +36 -18
- package/dist/components/Spinner/Spinner.styles.d.ts +2 -0
- package/dist/components/Spinner/Spinner.styles.js +32 -4
- package/dist/components/Spinner/index.js +3 -2
- package/dist/components/Stack/Stack.d.ts +30 -0
- package/dist/components/Stack/Stack.js +12 -11
- package/dist/components/Stack/Stack.styles.d.ts +33 -0
- package/dist/components/Stack/Stack.styles.js +23 -3
- package/dist/components/Styled/Styled.d.ts +19 -0
- package/dist/components/Styled/Styled.js +16 -0
- package/dist/components/Styled/index.d.ts +1 -0
- package/dist/components/Styled/index.js +4 -0
- package/dist/components/TabSet/Tab/Tab.d.ts +33 -0
- package/dist/components/TabSet/Tab/Tab.js +106 -89
- package/dist/components/TabSet/Tab/Tab.styles.d.ts +28 -0
- package/dist/components/TabSet/Tab/Tab.styles.js +21 -10
- package/dist/components/TabSet/TabSet.d.ts +48 -0
- package/dist/components/TabSet/TabSet.js +86 -65
- package/dist/components/TabSet/TabSet.styles.d.ts +64 -0
- package/dist/components/TabSet/TabSet.styles.js +103 -22
- package/dist/components/TabSet/TabSetProvider.d.ts +38 -0
- package/dist/components/TabSet/TabSetProvider.js +58 -52
- package/dist/components/Table/Table.d.ts +70 -0
- package/dist/components/Table/Table.js +19 -18
- package/dist/components/Table/Table.styles.js +13 -9
- package/dist/components/Table/TableBody/TableBody.d.ts +32 -0
- package/dist/components/Table/TableBody/TableBody.js +71 -66
- package/dist/components/Table/TableFormattedValue/TableFormattedValue.d.ts +28 -0
- package/dist/components/Table/TableFormattedValue/TableFormattedValue.js +10 -9
- package/dist/components/Table/TableProvider.d.ts +17 -0
- package/dist/components/Table/TableProvider.js +1 -1
- package/dist/components/Table/components/TableBodyCell.d.ts +15 -0
- package/dist/components/Table/components/TableBodyCell.js +17 -16
- package/dist/components/Table/components/TableEmpty.d.ts +5 -0
- package/dist/components/Table/components/TableEmpty.js +9 -8
- package/dist/components/Table/components/TableHeader.d.ts +11 -0
- package/dist/components/Table/components/TableHeader.js +13 -12
- package/dist/components/Table/components/TableHeaderCell.d.ts +12 -0
- package/dist/components/Table/components/TableHeaderCell.js +18 -17
- package/dist/components/Table/components/TableRows.d.ts +15 -0
- package/dist/components/Table/components/TableRows.js +27 -26
- package/dist/components/Table/components/TableSortButton.d.ts +12 -0
- package/dist/components/Table/components/TableSortButton.js +48 -21
- package/dist/components/Table/hooks/useTable.d.ts +5 -0
- package/dist/components/Table/hooks/useTable.js +6 -0
- package/dist/components/Table/hooks/useTableColumnSort.js +1 -1
- package/dist/components/Table/hooks/useTableColumnStyles.js +3 -3
- package/dist/components/Table/index.d.ts +6 -0
- package/dist/components/Table/index.js +3 -1
- package/dist/components/Tag/Tag.d.ts +58 -0
- package/dist/components/Tag/Tag.js +54 -33
- package/dist/components/Tag/Tag.styles.d.ts +120 -0
- package/dist/components/Tag/Tag.styles.js +107 -13
- package/dist/components/Tag/TagInput/TagInput.js +84 -79
- package/dist/components/Tag/TagInput/TagInput.styles.js +10 -13
- package/dist/components/Text/Text.d.ts +12 -0
- package/dist/components/Text/Text.js +17 -16
- package/dist/components/Text/Text.styles.js +5 -5
- package/dist/components/Toaster/Toaster.d.ts +28 -0
- package/dist/components/Toaster/Toaster.js +26 -25
- package/dist/components/Toaster/Toaster.styles.js +1 -1
- package/dist/components/Toaster/ToasterProvider.d.ts +13 -0
- package/dist/components/Toaster/ToasterProvider.js +32 -31
- package/dist/components/Toaster/components/Toast/Toast.d.ts +27 -0
- package/dist/components/Toaster/components/Toast/Toast.js +64 -93
- package/dist/components/Toaster/components/Toast/Toast.styles.d.ts +36 -0
- package/dist/components/Toaster/components/Toast/Toast.styles.js +27 -141
- package/dist/components/Toaster/hooks/useToaster.js +13 -13
- package/dist/components/Toaster/index.d.ts +6 -0
- package/dist/components/Toggle/Toggle.d.ts +40 -0
- package/dist/components/Toggle/Toggle.js +54 -48
- package/dist/components/Toggle/Toggle.styles.js +15 -7
- package/dist/components/Tooltip/Tooltip.d.ts +31 -0
- package/dist/components/Tooltip/Tooltip.js +16 -15
- package/dist/components/Tooltip/Tooltip.styles.js +7 -4
- package/dist/components/ValidationMessage/ValidationLink/ValidationLink.d.ts +22 -0
- package/dist/components/ValidationMessage/ValidationLink/ValidationLink.js +11 -10
- package/dist/components/ValidationMessage/ValidationMessage.d.ts +38 -0
- package/dist/components/ValidationMessage/ValidationMessage.js +30 -22
- package/dist/components/ValidationMessage/ValidationSummary/ValidationSummary.d.ts +34 -0
- package/dist/components/ValidationMessage/ValidationSummary/ValidationSummary.js +21 -20
- package/dist/constants.d.ts +144 -0
- package/dist/constants.js +52 -100
- package/dist/create-recipe-BDTG8O8S.js +50 -0
- package/dist/css-DVJ-ALYD.js +228 -0
- package/dist/cva-3iuaj0TL.js +63 -0
- package/dist/enums.d.ts +88 -0
- package/dist/enums.js +2 -20
- package/dist/factory-CcYfm2kB.js +58 -0
- package/dist/floating-ui.react-B0nDXRN6.js +3474 -0
- package/dist/helpers/dom/getActiveElement.js +4 -5
- package/dist/helpers/formatting/stringReplacer.d.ts +6 -0
- package/dist/helpers/label-value/getValueFromLabelValues.d.ts +5 -0
- package/dist/helpers/label-value/highlightQueryInLabel.js +3 -4
- package/dist/helpers/label-value/highlightQueryInLabelValue.js +4 -4
- package/dist/helpers/label-value/searchLabelValues.d.ts +2 -0
- package/dist/helpers/label-value/searchLabelValues.js +6 -5
- package/dist/helpers/styling/iressCss.d.ts +10 -0
- package/dist/helpers/styling/iressCss.js +3 -5
- package/dist/helpers/utility/idsLogger.d.ts +1 -0
- package/dist/highlightQueryInLabel-Cx7nIoII.js +399 -0
- package/dist/hooks/useBreakpoint.d.ts +19 -0
- package/dist/hooks/useBreakpoint.js +12 -11
- package/dist/hooks/useResponsiveProps.d.ts +25 -0
- package/dist/hooks/useResponsiveProps.js +18 -18
- package/dist/index-BPhnth66.js +784 -0
- package/dist/index.d-CZvOUeIl.js +3808 -0
- package/dist/interfaces.d.ts +436 -0
- package/dist/is-valid-prop-C5D641yn.js +7 -0
- package/dist/main.d.ts +65 -0
- package/dist/main.js +314 -313
- package/dist/patterns/Breadcrumbs/Breadcrumbs.d.ts +47 -0
- package/dist/patterns/Breadcrumbs/Breadcrumbs.js +130 -0
- package/dist/patterns/Breadcrumbs/Breadcrumbs.styles.d.ts +1 -0
- package/dist/patterns/Breadcrumbs/Breadcrumbs.styles.js +57 -0
- package/dist/patterns/Breadcrumbs/index.d.ts +2 -0
- package/dist/patterns/Breadcrumbs/index.js +6 -0
- package/dist/patterns/ContextualMenu/ContextualMenu.d.ts +50 -0
- package/dist/patterns/ContextualMenu/ContextualMenu.js +99 -0
- package/dist/patterns/ContextualMenu/ContextualMenu.styles.d.ts +59 -0
- package/dist/patterns/ContextualMenu/ContextualMenu.styles.js +100 -0
- package/dist/patterns/ContextualMenu/index.d.ts +2 -0
- package/dist/patterns/ContextualMenu/index.js +6 -0
- package/dist/patterns/DropdownMenu/DropdownMenu.d.ts +76 -0
- package/dist/patterns/DropdownMenu/DropdownMenu.js +221 -0
- package/dist/patterns/DropdownMenu/DropdownMenu.styles.d.ts +1 -0
- package/dist/patterns/DropdownMenu/DropdownMenu.styles.js +75 -0
- package/dist/patterns/DropdownMenu/hooks/useDropdownMenuFlags.d.ts +7 -0
- package/dist/patterns/DropdownMenu/hooks/useDropdownMenuFlags.js +25 -0
- package/dist/patterns/DropdownMenu/index.d.ts +2 -0
- package/dist/patterns/DropdownMenu/index.js +6 -0
- package/dist/patterns/Form/Form.d.ts +11 -0
- package/dist/patterns/Form/Form.js +7 -9
- package/dist/patterns/Form/Form.styles.d.ts +30 -0
- package/dist/patterns/Form/Form.styles.js +1 -1
- package/dist/patterns/Form/FormContext.js +3 -2
- package/dist/patterns/Form/FormField/FormField.d.ts +76 -0
- package/dist/patterns/Form/FormField/FormField.js +47 -38
- package/dist/patterns/Form/FormField/FormFieldset.d.ts +43 -0
- package/dist/patterns/Form/FormField/FormFieldset.js +26 -27
- package/dist/patterns/Form/FormField/hooks/useFieldRenderProps.d.ts +10 -0
- package/dist/patterns/Form/FormField/hooks/useFieldRenderProps.js +11 -29
- package/dist/patterns/Form/FormValidationSummary/FormValidationSummary.d.ts +18 -0
- package/dist/patterns/Form/FormValidationSummary/FormValidationSummary.js +26 -23
- package/dist/patterns/Form/HookForm/HookForm.d.ts +144 -0
- package/dist/patterns/Form/HookForm/HookForm.js +75 -75
- package/dist/patterns/Form/components/LongForm.d.ts +55 -0
- package/dist/patterns/Form/components/LongForm.js +15 -15
- package/dist/patterns/Form/components/ShortForm.d.ts +38 -0
- package/dist/patterns/Form/components/ShortForm.js +21 -20
- package/dist/patterns/Loading/Loading.d.ts +48 -0
- package/dist/patterns/Loading/Loading.js +7 -6
- package/dist/patterns/Loading/Loading.styles.d.ts +186 -0
- package/dist/patterns/Loading/Loading.styles.js +3 -3
- package/dist/patterns/Loading/LoadingSuspense.d.ts +74 -0
- package/dist/patterns/Loading/LoadingSuspense.js +22 -21
- package/dist/patterns/Loading/components/ComponentLoading.d.ts +56 -0
- package/dist/patterns/Loading/components/ComponentLoading.js +23 -22
- package/dist/patterns/Loading/components/DefaultLoading.d.ts +30 -0
- package/dist/patterns/Loading/components/DefaultLoading.js +14 -13
- package/dist/patterns/Loading/components/LongLoading.d.ts +63 -0
- package/dist/patterns/Loading/components/LongLoading.js +34 -34
- package/dist/patterns/Loading/components/PageLoading.d.ts +48 -0
- package/dist/patterns/Loading/components/PageLoading.js +36 -35
- package/dist/patterns/Loading/components/StartUpLoading.d.ts +75 -0
- package/dist/patterns/Loading/components/StartUpLoading.js +34 -33
- package/dist/patterns/Loading/components/ValidateLoading.d.ts +41 -0
- package/dist/patterns/Loading/components/ValidateLoading.js +27 -26
- package/dist/patterns/Loading/hooks/useEstimatedProgressValue.js +17 -22
- package/dist/patterns/Loading/hooks/useShouldRenderLoading.js +20 -14
- package/dist/patterns/Shadow/Shadow.d.ts +30 -0
- package/dist/patterns/Shadow/Shadow.js +4319 -7399
- package/dist/patterns/Shadow/meta/Thumbnail.d.ts +2 -0
- package/dist/patterns/Shadow/meta/index.d.ts +7 -0
- package/dist/patterns/SideNav/SideNav.d.ts +156 -0
- package/dist/patterns/SideNav/SideNav.helpers.d.ts +5 -0
- package/dist/patterns/SideNav/SideNav.helpers.js +4 -0
- package/dist/patterns/SideNav/SideNav.js +212 -0
- package/dist/patterns/SideNav/SideNav.styles.d.ts +14 -0
- package/dist/patterns/SideNav/SideNav.styles.js +87 -0
- package/dist/patterns/SideNav/hooks/useSideNavState.d.ts +47 -0
- package/dist/patterns/SideNav/hooks/useSideNavState.js +57 -0
- package/dist/patterns/SideNav/index.d.ts +2 -0
- package/dist/patterns/SideNav/index.js +6 -0
- package/dist/patterns/SideNav/meta/Thumbnail.d.ts +2 -0
- package/dist/patterns/SideNav/meta/index.d.ts +7 -0
- package/dist/style.css +1 -1
- package/dist/styled-system/patterns/divider.d.ts +22 -0
- package/dist/styled-system/patterns/float.d.ts +23 -0
- package/dist/styled-system/recipes/button.d.ts +41 -0
- package/dist/styled-system/recipes/table.d.ts +49 -0
- package/dist/styled-system/tokens/tokens.d.ts +30 -0
- package/dist/styled-system/types/composition.d.ts +227 -0
- package/dist/styled-system/types/conditions.d.ts +334 -0
- package/dist/styled-system/types/pattern.d.ts +78 -0
- package/dist/styled-system/types/prop-type.d.ts +243 -0
- package/dist/styled-system/types/style-props.d.ts +7519 -0
- package/dist/sva-CsHRIRDW.js +34 -0
- package/dist/types.d.ts +66 -0
- package/package.json +49 -32
- package/dist/Autocomplete-C5ubHBTi.js +0 -358
- package/dist/Button-mmhMLwp9.js +0 -359
- package/dist/Provider-8wS70V56.js +0 -64
- package/dist/TableProvider-bdUNuoG-.js +0 -81
- package/dist/components/Badge/Badge.js +0 -43
- package/dist/components/Badge/Badge.styles.js +0 -105
- package/dist/components/Badge/index.js +0 -6
- package/dist/components/Filter/Filter.js +0 -225
- package/dist/components/Filter/Filter.styles.js +0 -65
- package/dist/components/Filter/components/FilterLabel.js +0 -10
- package/dist/components/Filter/components/FilterResetButton.js +0 -27
- package/dist/components/Filter/components/FilterResultsDescriptor.js +0 -18
- package/dist/components/Filter/components/FilterSearch.js +0 -32
- package/dist/components/Filter/hooks/useFilterFlags.js +0 -25
- package/dist/components/Filter/index.js +0 -4
- package/dist/components/Panel/Panel.styles.js +0 -23
- package/dist/components/Popover/components/NestedPopoverActivator.js +0 -9
- package/dist/components/RichSelect/RichSelect.js +0 -40
- package/dist/components/RichSelect/RichSelect.styles.js +0 -96
- package/dist/components/RichSelect/SelectBody/SelectBody.js +0 -33
- package/dist/components/RichSelect/SelectBody/SelectBody.styles.js +0 -21
- package/dist/components/RichSelect/SelectCreate/SelectCreate.js +0 -37
- package/dist/components/RichSelect/SelectHeading/SelectHeading.js +0 -74
- package/dist/components/RichSelect/SelectLabel/SelectLabel.js +0 -50
- package/dist/components/RichSelect/SelectLabel/SelectLabel.styles.js +0 -91
- package/dist/components/RichSelect/SelectMenu/SelectMenu.js +0 -115
- package/dist/components/RichSelect/SelectMenu/SelectMenu.styles.js +0 -14
- package/dist/components/RichSelect/SelectMenu/SelectMenuItem.js +0 -64
- package/dist/components/RichSelect/SelectSearch/SelectSearch.js +0 -47
- package/dist/components/RichSelect/SelectSearch/SelectSearch.styles.js +0 -28
- package/dist/components/RichSelect/SelectSearchInput/SelectSearchInput.js +0 -46
- package/dist/components/RichSelect/SelectSearchInput/SelectSearchInput.styles.js +0 -32
- package/dist/components/RichSelect/SelectTags/SelectTags.js +0 -163
- package/dist/components/RichSelect/SelectTags/SelectTags.styles.js +0 -86
- package/dist/components/RichSelect/components/SelectActivator.js +0 -65
- package/dist/components/RichSelect/components/SelectHiddenInput.js +0 -29
- package/dist/components/RichSelect/components/SelectOptions.js +0 -208
- package/dist/components/RichSelect/hooks/useRichSelectState.js +0 -18
- package/dist/components/RichSelect/index.js +0 -22
- package/dist/components/Select/SelectOption/SelectOption.js +0 -10
- package/dist/components/Select/components/SelectControl.js +0 -41
- package/dist/components/Select/components/SelectReadonly.js +0 -39
- package/dist/components/Select/helpers/nodesToSelectOptions.js +0 -41
- package/dist/components/Toaster/components/Toast/ToastAnimated.js +0 -52
- package/dist/constants/index.css +0 -1
- package/dist/constants/index.scss +0 -2
- package/dist/create-recipe-C-ASk1Hy.js +0 -50
- package/dist/css-fGu_jDvv.js +0 -228
- package/dist/cva-JiDXAa83.js +0 -63
- package/dist/factory-oPXoMw9H.js +0 -58
- package/dist/floating-ui.react-BetVZ099.js +0 -3464
- package/dist/fuzzysort-DKAolWVP.js +0 -397
- package/dist/helpers/dom/domUtils.js +0 -12
- package/dist/helpers/dom/hasShadowDom.js +0 -4
- package/dist/helpers/form/isValidFormInputElement.js +0 -4
- package/dist/helpers/label-value/getQueryRangeExclusive.js +0 -14
- package/dist/helpers/responsive/getResponsiveLayoutModifiers.js +0 -11
- package/dist/helpers/responsive/getResponsivePaddingClasses.js +0 -11
- package/dist/helpers/styling/getVariablePadding.js +0 -38
- package/dist/helpers/styling/mapGutterToGap.js +0 -23
- package/dist/index-CZ9ot38T.js +0 -600
- package/dist/index.esm-B6vzbp0e.js +0 -1215
- package/dist/is-valid-prop-Ce0wiweq.js +0 -7
- package/dist/src/components/Alert/Alert.d.ts +0 -57
- package/dist/src/components/Alert/Alert.styles.d.ts +0 -128
- package/dist/src/components/Autocomplete/Autocomplete.d.ts +0 -52
- package/dist/src/components/Autocomplete/components/AutocompleteInstructions.d.ts +0 -7
- package/dist/src/components/Autocomplete/hooks/useAutocompleteSearch.d.ts +0 -73
- package/dist/src/components/Badge/Badge.d.ts +0 -21
- package/dist/src/components/Badge/Badge.styles.d.ts +0 -63
- package/dist/src/components/Badge/index.d.ts +0 -2
- package/dist/src/components/Button/Button.d.ts +0 -90
- package/dist/src/components/ButtonGroup/ButtonGroup.d.ts +0 -35
- package/dist/src/components/Card/Card.d.ts +0 -44
- package/dist/src/components/Card/Card.styles.d.ts +0 -76
- package/dist/src/components/Checkbox/Checkbox.d.ts +0 -66
- package/dist/src/components/Checkbox/Checkbox.styles.d.ts +0 -59
- package/dist/src/components/CheckboxGroup/CheckboxGroup.d.ts +0 -55
- package/dist/src/components/CheckboxMark/CheckboxMark.d.ts +0 -16
- package/dist/src/components/Col/Col.d.ts +0 -23
- package/dist/src/components/Col/Col.styles.d.ts +0 -16
- package/dist/src/components/Container/Container.d.ts +0 -13
- package/dist/src/components/Container/Container.styles.d.ts +0 -35
- package/dist/src/components/Divider/Divider.d.ts +0 -8
- package/dist/src/components/Divider/Divider.styles.d.ts +0 -18
- package/dist/src/components/Expander/Expander.d.ts +0 -31
- package/dist/src/components/Expander/Expander.styles.d.ts +0 -45
- package/dist/src/components/Field/Field.d.ts +0 -57
- package/dist/src/components/Field/Field.styles.d.ts +0 -88
- package/dist/src/components/Field/FieldGroup/FieldGroup.d.ts +0 -17
- package/dist/src/components/Field/FieldGroup/FieldGroup.styles.d.ts +0 -81
- package/dist/src/components/Field/components/FieldFooter.d.ts +0 -22
- package/dist/src/components/Field/components/FieldHint.d.ts +0 -27
- package/dist/src/components/Filter/Filter.d.ts +0 -75
- package/dist/src/components/Filter/Filter.styles.d.ts +0 -2
- package/dist/src/components/Filter/components/FilterLabel.d.ts +0 -3
- package/dist/src/components/Filter/components/FilterResetButton.d.ts +0 -1
- package/dist/src/components/Filter/components/FilterResultsDescriptor.d.ts +0 -15
- package/dist/src/components/Filter/components/FilterSearch.d.ts +0 -15
- package/dist/src/components/Filter/hooks/useFilterFlags.d.ts +0 -7
- package/dist/src/components/Filter/index.d.ts +0 -1
- package/dist/src/components/Hide/Hide.d.ts +0 -28
- package/dist/src/components/Hide/helpers/normaliseHideValues.d.ts +0 -2
- package/dist/src/components/Icon/Icon.d.ts +0 -36
- package/dist/src/components/Icon/Icon.styles.d.ts +0 -38
- package/dist/src/components/Icon/index.d.ts +0 -2
- package/dist/src/components/Image/Image.d.ts +0 -16
- package/dist/src/components/Inline/Inline.d.ts +0 -31
- package/dist/src/components/Input/Input.d.ts +0 -57
- package/dist/src/components/Input/Input.styles.d.ts +0 -121
- package/dist/src/components/Input/InputBase/InputBase.d.ts +0 -39
- package/dist/src/components/InputCurrency/InputCurrency.d.ts +0 -28
- package/dist/src/components/Label/Label.d.ts +0 -19
- package/dist/src/components/Label/LabelBase/LabelBase.d.ts +0 -28
- package/dist/src/components/Link/Link.d.ts +0 -42
- package/dist/src/components/Link/Link.styles.d.ts +0 -29
- package/dist/src/components/Menu/Menu.d.ts +0 -110
- package/dist/src/components/Menu/Menu.styles.d.ts +0 -121
- package/dist/src/components/Menu/MenuDivider/MenuDivider.d.ts +0 -3
- package/dist/src/components/Menu/MenuItem/MenuItem.d.ts +0 -99
- package/dist/src/components/Menu/MenuText/MenuText.d.ts +0 -19
- package/dist/src/components/Menu/index.d.ts +0 -6
- package/dist/src/components/Modal/Modal.d.ts +0 -74
- package/dist/src/components/Modal/Modal.styles.d.ts +0 -87
- package/dist/src/components/Modal/ModalProvider.d.ts +0 -10
- package/dist/src/components/Panel/Panel.d.ts +0 -15
- package/dist/src/components/Panel/Panel.styles.d.ts +0 -7
- package/dist/src/components/Panel/index.d.ts +0 -2
- package/dist/src/components/Placeholder/Placeholder.d.ts +0 -21
- package/dist/src/components/Placeholder/Placeholder.styles.d.ts +0 -1
- package/dist/src/components/Popover/InputPopover/InputPopover.d.ts +0 -21
- package/dist/src/components/Popover/InputPopover/InputPopoverActivator.d.ts +0 -9
- package/dist/src/components/Popover/Popover.d.ts +0 -91
- package/dist/src/components/Popover/components/NestedPopoverActivator.d.ts +0 -5
- package/dist/src/components/Popover/components/PopoverActivator.d.ts +0 -6
- package/dist/src/components/Popover/components/PopoverContent.d.ts +0 -7
- package/dist/src/components/Popover/helpers/composeFloatingProps.d.ts +0 -16
- package/dist/src/components/Popover/helpers/handlePopoverTabKey.d.ts +0 -8
- package/dist/src/components/Popover/hooks/usePopover.d.ts +0 -124
- package/dist/src/components/Popover/hooks/usePopoverActivatorInteractions.d.ts +0 -15
- package/dist/src/components/Popover/hooks/usePopoverImperativeHandle.d.ts +0 -8
- package/dist/src/components/Popover/hooks/usePopoverItem.d.ts +0 -39
- package/dist/src/components/Popover/index.d.ts +0 -5
- package/dist/src/components/Progress/Progress.d.ts +0 -44
- package/dist/src/components/Provider/Provider.d.ts +0 -24
- package/dist/src/components/Radio/Radio.d.ts +0 -47
- package/dist/src/components/Radio/Radio.styles.d.ts +0 -51
- package/dist/src/components/RadioGroup/RadioGroup.d.ts +0 -56
- package/dist/src/components/RadioGroup/RadioGroup.styles.d.ts +0 -50
- package/dist/src/components/Readonly/Readonly.d.ts +0 -14
- package/dist/src/components/Readonly/Readonly.styles.d.ts +0 -106
- package/dist/src/components/RichSelect/RichSelect.d.ts +0 -152
- package/dist/src/components/RichSelect/RichSelect.styles.d.ts +0 -59
- package/dist/src/components/RichSelect/SelectBody/SelectBody.d.ts +0 -13
- package/dist/src/components/RichSelect/SelectCreate/SelectCreate.d.ts +0 -29
- package/dist/src/components/RichSelect/SelectHeading/SelectHeading.d.ts +0 -17
- package/dist/src/components/RichSelect/SelectLabel/SelectLabel.d.ts +0 -4
- package/dist/src/components/RichSelect/SelectLabel/SelectLabel.styles.d.ts +0 -15
- package/dist/src/components/RichSelect/SelectMenu/SelectMenu.d.ts +0 -52
- package/dist/src/components/RichSelect/SelectMenu/SelectMenuItem.d.ts +0 -2
- package/dist/src/components/RichSelect/SelectSearch/SelectSearch.d.ts +0 -3
- package/dist/src/components/RichSelect/SelectTags/SelectTags.d.ts +0 -32
- package/dist/src/components/RichSelect/SelectTags/SelectTags.styles.d.ts +0 -16
- package/dist/src/components/RichSelect/components/SelectActivator.d.ts +0 -38
- package/dist/src/components/RichSelect/components/SelectHiddenInput.d.ts +0 -27
- package/dist/src/components/RichSelect/components/SelectOptions.d.ts +0 -8
- package/dist/src/components/RichSelect/hooks/useRichSelectState.d.ts +0 -17
- package/dist/src/components/RichSelect/index.d.ts +0 -10
- package/dist/src/components/Row/Row.d.ts +0 -28
- package/dist/src/components/Select/Select.d.ts +0 -47
- package/dist/src/components/Select/Select.styles.d.ts +0 -94
- package/dist/src/components/Select/SelectOption/SelectOption.d.ts +0 -9
- package/dist/src/components/Select/components/SelectControl.d.ts +0 -24
- package/dist/src/components/Select/components/SelectReadonly.d.ts +0 -16
- package/dist/src/components/Select/helpers/nodesToSelectOptions.d.ts +0 -16
- package/dist/src/components/Select/index.d.ts +0 -3
- package/dist/src/components/Skeleton/Skeleton.d.ts +0 -25
- package/dist/src/components/SkipLink/SkipLink.d.ts +0 -17
- package/dist/src/components/Slideout/Slideout.d.ts +0 -82
- package/dist/src/components/Slideout/Slideout.styles.d.ts +0 -66
- package/dist/src/components/Slideout/SlideoutProvider.d.ts +0 -10
- package/dist/src/components/Slideout/components/SlideoutInner.d.ts +0 -10
- package/dist/src/components/Slider/components/SliderTicks.d.ts +0 -58
- package/dist/src/components/Spinner/Spinner.d.ts +0 -9
- package/dist/src/components/Spinner/Spinner.styles.d.ts +0 -1
- package/dist/src/components/Stack/Stack.d.ts +0 -23
- package/dist/src/components/Stack/Stack.styles.d.ts +0 -13
- package/dist/src/components/TabSet/Tab/Tab.d.ts +0 -31
- package/dist/src/components/TabSet/Tab/Tab.styles.d.ts +0 -17
- package/dist/src/components/TabSet/TabSet.d.ts +0 -38
- package/dist/src/components/TabSet/TabSet.styles.d.ts +0 -25
- package/dist/src/components/TabSet/TabSetProvider.d.ts +0 -32
- package/dist/src/components/Table/Table.d.ts +0 -67
- package/dist/src/components/Table/TableBody/TableBody.d.ts +0 -29
- package/dist/src/components/Table/TableFormattedValue/TableFormattedValue.d.ts +0 -25
- package/dist/src/components/Table/TableProvider.d.ts +0 -14
- package/dist/src/components/Table/components/TableBodyCell.d.ts +0 -12
- package/dist/src/components/Table/components/TableEmpty.d.ts +0 -2
- package/dist/src/components/Table/components/TableHeader.d.ts +0 -8
- package/dist/src/components/Table/components/TableHeaderCell.d.ts +0 -9
- package/dist/src/components/Table/components/TableRows.d.ts +0 -12
- package/dist/src/components/Table/components/TableSortButton.d.ts +0 -9
- package/dist/src/components/Table/index.d.ts +0 -5
- package/dist/src/components/Tag/Tag.d.ts +0 -26
- package/dist/src/components/Tag/Tag.styles.d.ts +0 -31
- package/dist/src/components/Text/Text.d.ts +0 -9
- package/dist/src/components/Toaster/Toaster.d.ts +0 -25
- package/dist/src/components/Toaster/ToasterProvider.d.ts +0 -10
- package/dist/src/components/Toaster/components/Toast/Toast.d.ts +0 -32
- package/dist/src/components/Toaster/components/Toast/Toast.styles.d.ts +0 -90
- package/dist/src/components/Toaster/components/Toast/ToastAnimated.d.ts +0 -19
- package/dist/src/components/Toaster/index.d.ts +0 -7
- package/dist/src/components/Toggle/Toggle.d.ts +0 -33
- package/dist/src/components/Tooltip/Tooltip.d.ts +0 -28
- package/dist/src/components/ValidationMessage/ValidationLink/ValidationLink.d.ts +0 -19
- package/dist/src/components/ValidationMessage/ValidationMessage.d.ts +0 -35
- package/dist/src/components/ValidationMessage/ValidationSummary/ValidationSummary.d.ts +0 -31
- package/dist/src/constants.d.ts +0 -123
- package/dist/src/enums.d.ts +0 -281
- package/dist/src/helpers/dom/domUtils.d.ts +0 -5
- package/dist/src/helpers/dom/hasShadowDom.d.ts +0 -1
- package/dist/src/helpers/form/isValidFormInputElement.d.ts +0 -1
- package/dist/src/helpers/formatting/stringReplacer.d.ts +0 -2
- package/dist/src/helpers/label-value/getQueryRangeExclusive.d.ts +0 -8
- package/dist/src/helpers/label-value/getValueFromLabelValues.d.ts +0 -2
- package/dist/src/helpers/label-value/searchLabelValues.d.ts +0 -2
- package/dist/src/helpers/responsive/getResponsiveLayoutModifiers.d.ts +0 -2
- package/dist/src/helpers/responsive/getResponsivePaddingClasses.d.ts +0 -2
- package/dist/src/helpers/styling/getVariablePadding.d.ts +0 -6
- package/dist/src/helpers/styling/iressCss.d.ts +0 -22
- package/dist/src/helpers/styling/mapGutterToGap.d.ts +0 -3
- package/dist/src/helpers/utility/idsLogger.d.ts +0 -3
- package/dist/src/hooks/useBreakpoint.d.ts +0 -11
- package/dist/src/hooks/useResponsiveProps.d.ts +0 -12
- package/dist/src/interfaces.d.ts +0 -442
- package/dist/src/main.d.ts +0 -60
- package/dist/src/patterns/Form/Form.d.ts +0 -11
- package/dist/src/patterns/Form/Form.styles.d.ts +0 -30
- package/dist/src/patterns/Form/FormField/FormField.d.ts +0 -54
- package/dist/src/patterns/Form/FormField/FormFieldset.d.ts +0 -40
- package/dist/src/patterns/Form/FormField/hooks/useFieldRenderProps.d.ts +0 -17
- package/dist/src/patterns/Form/FormValidationSummary/FormValidationSummary.d.ts +0 -15
- package/dist/src/patterns/Form/HookForm/HookForm.d.ts +0 -174
- package/dist/src/patterns/Form/components/LongForm.d.ts +0 -53
- package/dist/src/patterns/Form/components/ShortForm.d.ts +0 -36
- package/dist/src/patterns/Loading/Loading.d.ts +0 -47
- package/dist/src/patterns/Loading/Loading.styles.d.ts +0 -186
- package/dist/src/patterns/Loading/LoadingSuspense.d.ts +0 -73
- package/dist/src/patterns/Loading/components/ComponentLoading.d.ts +0 -53
- package/dist/src/patterns/Loading/components/DefaultLoading.d.ts +0 -27
- package/dist/src/patterns/Loading/components/LongLoading.d.ts +0 -60
- package/dist/src/patterns/Loading/components/PageLoading.d.ts +0 -45
- package/dist/src/patterns/Loading/components/StartUpLoading.d.ts +0 -72
- package/dist/src/patterns/Loading/components/ValidateLoading.d.ts +0 -38
- package/dist/src/patterns/Shadow/Shadow.d.ts +0 -34
- package/dist/src/styled-system/patterns/divider.d.ts +0 -22
- package/dist/src/styled-system/patterns/float.d.ts +0 -23
- package/dist/src/styled-system/recipes/button.d.ts +0 -39
- package/dist/src/styled-system/recipes/table.d.ts +0 -49
- package/dist/src/styled-system/tokens/tokens.d.ts +0 -30
- package/dist/src/styled-system/types/composition.d.ts +0 -224
- package/dist/src/styled-system/types/conditions.d.ts +0 -338
- package/dist/src/styled-system/types/pattern.d.ts +0 -78
- package/dist/src/styled-system/types/prop-type.d.ts +0 -241
- package/dist/src/styled-system/types/style-props.d.ts +0 -7518
- package/dist/src/types.d.ts +0 -33
- package/dist/sva-OmxClA9g.js +0 -34
- /package/dist/{src/components → components}/Alert/index.d.ts +0 -0
- /package/dist/{src/components → components}/Alert/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components → components}/Alert/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Autocomplete/Autocomplete.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Autocomplete/index.d.ts +0 -0
- /package/dist/{src/components → components}/Autocomplete/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components → components}/Autocomplete/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Button/CloseButton/CloseButton.d.ts +0 -0
- /package/dist/{src/components → components}/Button/index.d.ts +0 -0
- /package/dist/{src/components/Badge → components/Button}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Badge → components/Button}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/ButtonGroup/ButtonGroup.styles.d.ts +0 -0
- /package/dist/{src/components → components}/ButtonGroup/ButtonGroupProvider.d.ts +0 -0
- /package/dist/{src/components → components}/ButtonGroup/hooks/useButtonGroupItem.d.ts +0 -0
- /package/dist/{src/components → components}/ButtonGroup/index.d.ts +0 -0
- /package/dist/{src/components/Button → components/ButtonGroup}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Button → components/ButtonGroup}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Card/index.d.ts +0 -0
- /package/dist/{src/components/ButtonGroup → components/Card}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/ButtonGroup → components/Card}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Checkbox/index.d.ts +0 -0
- /package/dist/{src/components/Card → components/Checkbox}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Card → components/Checkbox}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/CheckboxGroup/CheckboxGroup.styles.d.ts +0 -0
- /package/dist/{src/components → components}/CheckboxGroup/index.d.ts +0 -0
- /package/dist/{src/components/Checkbox → components/CheckboxGroup}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Checkbox → components/CheckboxGroup}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/CheckboxMark/CheckboxMark.styles.d.ts +0 -0
- /package/dist/{src/components → components}/CheckboxMark/index.d.ts +0 -0
- /package/dist/{src/components → components}/Col/index.d.ts +0 -0
- /package/dist/{src/components/CheckboxGroup → components/Col}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/CheckboxGroup → components/Col}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Container/index.d.ts +0 -0
- /package/dist/{src/components/Col → components/Container}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Col → components/Container}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Divider/index.d.ts +0 -0
- /package/dist/{src/components/Container → components/Divider}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Container → components/Divider}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Expander/index.d.ts +0 -0
- /package/dist/{src/components/Divider → components/Expander}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Divider → components/Expander}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Field/helpers/getUniqueItemsByKey.d.ts +0 -0
- /package/dist/{src/components → components}/Field/index.d.ts +0 -0
- /package/dist/{src/components/Expander → components/Field}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Expander → components/Field}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Hide/index.d.ts +0 -0
- /package/dist/{src/components/Field → components/Hide}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Field → components/Hide}/meta/index.d.ts +0 -0
- /package/dist/{src/components/Filter → components/Icon}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Filter → components/Icon}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Image/Image.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Image/index.d.ts +0 -0
- /package/dist/{src/components/Hide → components/Image}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Hide → components/Image}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Inline/Inline.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Inline/index.d.ts +0 -0
- /package/dist/{src/components/Icon → components/Inline}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Icon → components/Inline}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Input/index.d.ts +0 -0
- /package/dist/{src/components/Image → components/Input}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Image → components/Input}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/InputCurrency/index.d.ts +0 -0
- /package/dist/{src/components/Inline → components/InputCurrency}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Inline → components/InputCurrency}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Label/Label.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Label/index.d.ts +0 -0
- /package/dist/{src/components/Input → components/Label}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Input → components/Label}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Link/index.d.ts +0 -0
- /package/dist/{src/components/InputCurrency → components/Link}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/InputCurrency → components/Link}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Menu/MenuItem/hooks/useMenuItemRole.d.ts +0 -0
- /package/dist/{src/components/Label → components/Menu}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Label → components/Menu}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Modal/hooks/useModal.d.ts +0 -0
- /package/dist/{src/components → components}/Modal/hooks/useProviderModal.d.ts +0 -0
- /package/dist/{src/components → components}/Modal/index.d.ts +0 -0
- /package/dist/{src/components/Link → components/Modal}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Link → components/Modal}/meta/index.d.ts +0 -0
- /package/dist/{src/components/Menu → components/Panel}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Menu → components/Panel}/meta/index.d.ts +0 -0
- /package/dist/{src/components/Modal → components/Pill}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Modal → components/Pill}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Placeholder/index.d.ts +0 -0
- /package/dist/{src/components/Panel → components/Placeholder}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Panel → components/Placeholder}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Popover/Popover.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Popover/helpers/hasFocus.d.ts +0 -0
- /package/dist/{src/components → components}/Popover/helpers/waitUntilTrue.d.ts +0 -0
- /package/dist/{src/components → components}/Popover/hooks/usePopoverAria.d.ts +0 -0
- /package/dist/{src/components → components}/Popover/hooks/usePopoverNavigation.d.ts +0 -0
- /package/dist/{src/components/Placeholder → components/Popover}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Placeholder → components/Popover}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Progress/Progress.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Progress/index.d.ts +0 -0
- /package/dist/{src/components/Popover → components/Progress}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Popover → components/Progress}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Provider/index.d.ts +0 -0
- /package/dist/{src/components → components}/Radio/index.d.ts +0 -0
- /package/dist/{src/components/Progress → components/Radio}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Progress → components/Radio}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/RadioGroup/index.d.ts +0 -0
- /package/dist/{src/components/Radio → components/RadioGroup}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Radio → components/RadioGroup}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Readonly/index.d.ts +0 -0
- /package/dist/{src/components/RadioGroup → components/Readonly}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/RadioGroup → components/Readonly}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Row/Row.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Row/index.d.ts +0 -0
- /package/dist/{src/components/Readonly → components/Row}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Readonly → components/Row}/meta/index.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/SelectBody/SelectBody.styles.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/SelectMenu/SelectMenu.styles.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/SelectSearch/SelectSearch.styles.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/SelectSearchInput/SelectSearchInput.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/SelectSearchInput/SelectSearchInput.styles.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/RichSelect → components/Select}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Skeleton/Skeleton.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Skeleton/index.d.ts +0 -0
- /package/dist/{src/components/Row → components/Skeleton}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Row → components/Skeleton}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/SkipLink/SkipLink.styles.d.ts +0 -0
- /package/dist/{src/components → components}/SkipLink/index.d.ts +0 -0
- /package/dist/{src/components/Select → components/SkipLink}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Select → components/SkipLink}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Slideout/hooks/useProviderSlideout.d.ts +0 -0
- /package/dist/{src/components → components}/Slideout/hooks/usePushElement.d.ts +0 -0
- /package/dist/{src/components → components}/Slideout/hooks/useSlideout.d.ts +0 -0
- /package/dist/{src/components → components}/Slideout/index.d.ts +0 -0
- /package/dist/{src/components/Skeleton → components/Slideout}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Skeleton → components/Slideout}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Slider/Slider.d.ts +0 -0
- /package/dist/{src/components → components}/Slider/Slider.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Slider/index.d.ts +0 -0
- /package/dist/{src/components/SkipLink → components/Slider}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/SkipLink → components/Slider}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Spinner/index.d.ts +0 -0
- /package/dist/{src/components/Slideout → components/Spinner}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Slideout → components/Spinner}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Stack/index.d.ts +0 -0
- /package/dist/{src/components/Slider → components/Stack}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Slider → components/Stack}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/TabSet/index.d.ts +0 -0
- /package/dist/{src/components/Spinner → components/TabSet}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Spinner → components/TabSet}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Table/Table.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Table/helpers/composeTableColumnDefs.d.ts +0 -0
- /package/dist/{src/components → components}/Table/helpers/composeTableInitialSorting.d.ts +0 -0
- /package/dist/{src/components → components}/Table/hooks/useTableColumnSort.d.ts +0 -0
- /package/dist/{src/components → components}/Table/hooks/useTableColumnStyles.d.ts +0 -0
- /package/dist/{src/components/Stack → components/Table}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Stack → components/Table}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Tag/TagInput/TagInput.d.ts +0 -0
- /package/dist/{src/components → components}/Tag/TagInput/TagInput.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Tag/index.d.ts +0 -0
- /package/dist/{src/components/TabSet → components/Tag}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/TabSet → components/Tag}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Text/Text.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Text/index.d.ts +0 -0
- /package/dist/{src/components/Table → components/Text}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Table → components/Text}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Toaster/Toaster.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Toaster/helpers/toasterRegister.d.ts +0 -0
- /package/dist/{src/components → components}/Toaster/hooks/useToaster.d.ts +0 -0
- /package/dist/{src/components/Tag → components/Toaster}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Tag → components/Toaster}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Toggle/Toggle.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Toggle/index.d.ts +0 -0
- /package/dist/{src/components/Text → components/Toggle}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Text → components/Toggle}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/Tooltip/Tooltip.styles.d.ts +0 -0
- /package/dist/{src/components → components}/Tooltip/index.d.ts +0 -0
- /package/dist/{src/components/Toaster → components/Tooltip}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Toaster → components/Tooltip}/meta/index.d.ts +0 -0
- /package/dist/{src/components → components}/ValidationMessage/index.d.ts +0 -0
- /package/dist/{src/components/Toggle → components/ValidationMessage}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Toggle → components/ValidationMessage}/meta/index.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/dom/closestCrossShadow.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/dom/focusableElements.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/dom/getActiveElement.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/form/getFormControlValueAsString.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/form/getFormControlValueAsStringIfDefined.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/form/getValueAsEvent.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/capitalizeFirstLetter.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/formatCurrency.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/formatDate.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/formatDateTime.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/formatObjectKey.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/formatPercentage.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/toArray.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/formatting/toCSSLengthValue.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/label-value/composeLabelValueDescriptor.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/label-value/highlightQueryInLabel.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/label-value/highlightQueryInLabelValue.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/transition/getTransitionDuration.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/transition/timeStringToNumber.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/utility/propagateTestid.d.ts +0 -0
- /package/dist/{src/helpers → helpers}/utility/spreadUnlessUndefined.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/index.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/useAriaRelationship.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/useControlledState.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/useIdIfNeeded.d.ts +0 -0
- /package/dist/{src/components/Tooltip → patterns/Breadcrumbs}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/Tooltip → patterns/Breadcrumbs}/meta/index.d.ts +0 -0
- /package/dist/{src/components/ValidationMessage → patterns/ContextualMenu}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/components/ValidationMessage → patterns/ContextualMenu}/meta/index.d.ts +0 -0
- /package/dist/{src/patterns/Form → patterns/DropdownMenu}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/patterns/Form → patterns/DropdownMenu}/meta/index.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Form/FormContext.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Form/FormField/helpers/getErrorTypeMessage.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Form/FormField/helpers/transformCustomRulesToValidateRule.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Form/hooks/useNoDefaultValueInForms.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Form/index.d.ts +0 -0
- /package/dist/{src/patterns/Loading → patterns/Form}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/patterns/Loading → patterns/Form}/meta/index.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Loading/hooks/useEstimatedProgressValue.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Loading/hooks/useShouldRenderLoading.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Loading/hooks/useShowIndicator.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Loading/hooks/useSuspenseResource.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Loading/index.d.ts +0 -0
- /package/dist/{src/patterns/Shadow → patterns/Loading}/meta/Thumbnail.d.ts +0 -0
- /package/dist/{src/patterns/Shadow → patterns/Loading}/meta/index.d.ts +0 -0
- /package/dist/{src/patterns → patterns}/Shadow/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/css/css.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/css/cva.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/css/cx.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/css/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/css/sva.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/aspect-ratio.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/bleed.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/box.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/center.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/circle.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/container.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/cq.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/create-style-context.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/divider.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/factory.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/flex.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/float.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/grid-item.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/grid.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/hstack.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/is-valid-prop.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/link-overlay.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/spacer.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/square.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/stack.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/visually-hidden.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/vstack.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/jsx/wrap.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/aspect-ratio.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/bleed.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/box.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/center.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/circle.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/container.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/cq.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/flex.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/grid-item.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/grid.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/hstack.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/link-overlay.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/spacer.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/square.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/stack.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/visually-hidden.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/vstack.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/patterns/wrap.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/recipes/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/recipes/text.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/tokens/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/csstype.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/global.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/index.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/jsx.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/parts.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/recipe.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/selectors.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/static-css.d.ts +0 -0
- /package/dist/{src/styled-system → styled-system}/types/system-types.d.ts +0 -0
|
@@ -0,0 +1,733 @@
|
|
|
1
|
+
# Skill: UI Doctor
|
|
2
|
+
|
|
3
|
+
Audit and validate that an application correctly uses IDS (Iress Design System) components, follows IDS principles, and meets compliance requirements. This skill helps AI agents perform comprehensive UI reviews, identify areas where native HTML or third-party elements should be replaced with IDS components, assess adherence to IDS design principles, and produce actionable reports with recommendations.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Reviewing an application's UI code for IDS compliance
|
|
8
|
+
- Validating that IDS components are used where possible instead of raw HTML or custom implementations
|
|
9
|
+
- Assessing design token usage and consistency
|
|
10
|
+
- Generating a UI health report with an IDS compliance score
|
|
11
|
+
- Providing recommendations to improve IDS adoption and consistency
|
|
12
|
+
|
|
13
|
+
## Audit Scope
|
|
14
|
+
|
|
15
|
+
Before starting the audit, determine which files to scan and which to exclude.
|
|
16
|
+
|
|
17
|
+
### Files to Scan
|
|
18
|
+
|
|
19
|
+
- All `.tsx`, `.jsx`, `.ts`, `.js` files in `src/` (or the application source directory)
|
|
20
|
+
- CSS/SCSS/styled-component files for hardcoded design values
|
|
21
|
+
- Application entry point(s) for Provider and CSS import checks
|
|
22
|
+
|
|
23
|
+
### Files to Exclude
|
|
24
|
+
|
|
25
|
+
- **Test files** (`*.test.tsx`, `*.spec.tsx`, `__tests__/`) — test mocks and utilities may legitimately use raw HTML
|
|
26
|
+
- **Storybook stories** (`*.stories.tsx`) — stories may intentionally demonstrate raw HTML for comparison
|
|
27
|
+
- **Configuration files** (`*.config.ts`, `*.config.js`) — not UI code
|
|
28
|
+
- **Type definition files** (`*.d.ts`) — no runtime UI code
|
|
29
|
+
- **Third-party code** (`node_modules/`, vendored libraries) — outside the application's control
|
|
30
|
+
- **Build output** (`dist/`, `build/`) — generated code
|
|
31
|
+
|
|
32
|
+
### Version-Aware Auditing
|
|
33
|
+
|
|
34
|
+
IDS is currently on **version 6**. When auditing applications:
|
|
35
|
+
|
|
36
|
+
- **Check the installed IDS version** — Look at `package.json` for `@iress-oss/ids-components` version
|
|
37
|
+
- **v6 applications** — Apply all rules in this skill as-is
|
|
38
|
+
- **v5 applications** — Some patterns differ (e.g., `IressForm` API changes between v5 and v6). Flag v5-specific patterns as "migration opportunities" rather than "non-compliant". Key v5→v6 differences include:
|
|
39
|
+
- `IressForm` now uses `rules` prop for validation instead of built-in validation props
|
|
40
|
+
- `react-hook-form` is now a peer dependency
|
|
41
|
+
- Form state management moved from `useState` to React Hook Form's `useWatch`/`ref`
|
|
42
|
+
- **Pre-v5 applications** — Flag as requiring a major migration and prioritise Provider/CSS setup first
|
|
43
|
+
- **Always note the version** in the audit report header
|
|
44
|
+
|
|
45
|
+
## Audit Process
|
|
46
|
+
|
|
47
|
+
### 1. Validate IDS Component Usage
|
|
48
|
+
|
|
49
|
+
Scan the application code for raw HTML elements, third-party UI components, and custom implementations that have IDS equivalents. Flag instances where IDS components should be used instead.
|
|
50
|
+
|
|
51
|
+
#### Third-Party UI Library Detection
|
|
52
|
+
|
|
53
|
+
Check for imports from third-party UI libraries that overlap with IDS. Common libraries to flag:
|
|
54
|
+
|
|
55
|
+
| Third-Party Library | Common Imports to Flag | IDS Replacement |
|
|
56
|
+
| ----------------------------------- | --------------------------------------------------------- | ------------------------------ |
|
|
57
|
+
| Material UI (`@mui/*`) | `Button`, `TextField`, `Select`, `Modal`, `Table`, `Tabs` | Equivalent `Iress*` components |
|
|
58
|
+
| Ant Design (`antd`) | `Button`, `Input`, `Select`, `Modal`, `Table`, `Tabs` | Equivalent `Iress*` components |
|
|
59
|
+
| Chakra UI (`@chakra-ui/*`) | `Button`, `Input`, `Select`, `Modal`, `Table` | Equivalent `Iress*` components |
|
|
60
|
+
| React Bootstrap (`react-bootstrap`) | `Button`, `Form`, `Modal`, `Table`, `Nav` | Equivalent `Iress*` components |
|
|
61
|
+
| Radix UI (`@radix-ui/*`) | `Dialog`, `Popover`, `Tooltip`, `Tabs`, `Select` | Equivalent `Iress*` components |
|
|
62
|
+
| Headless UI (`@headlessui/react`) | `Dialog`, `Popover`, `Menu`, `Tab`, `Switch` | Equivalent `Iress*` components |
|
|
63
|
+
|
|
64
|
+
**How to detect:** Search for import statements matching these package names. Any UI component imported from a third-party library that has an IDS equivalent should be flagged as a **High** priority replacement.
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
// ❌ Third-party UI component — should use IDS
|
|
68
|
+
import { Button } from '@mui/material';
|
|
69
|
+
import { Modal } from 'antd';
|
|
70
|
+
import { Dialog } from '@radix-ui/react-dialog';
|
|
71
|
+
|
|
72
|
+
// ✅ IDS components
|
|
73
|
+
import { IressButton, IressModal } from '@iress-oss/ids-components';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### HTML Element → IDS Component Replacement Map
|
|
77
|
+
|
|
78
|
+
| Raw HTML / Custom Code | IDS Replacement | Priority |
|
|
79
|
+
| --------------------------------------- | --------------------------------------------------- | -------- |
|
|
80
|
+
| `<button>` | `IressButton` | High |
|
|
81
|
+
| `<a>` (navigation link) | `IressLink` | High |
|
|
82
|
+
| `<input type="text">` | `IressField` + `IressInput` | High |
|
|
83
|
+
| `<input type="checkbox">` | `IressCheckbox` | High |
|
|
84
|
+
| `<input type="radio">` | `IressRadio` + `IressRadioGroup` | High |
|
|
85
|
+
| `<select>` | `IressField` + `IressSelect` | High |
|
|
86
|
+
| `<textarea>` | `IressField` + `IressInput` | High |
|
|
87
|
+
| `<table>` | `IressTable` | High |
|
|
88
|
+
| `<label>` | `IressField` (wraps input with label) | High |
|
|
89
|
+
| `<h1>`–`<h6>`, `<p>`, `<span>` (styled) | `IressText` | Medium |
|
|
90
|
+
| `<img>` | `IressImage` | Medium |
|
|
91
|
+
| `<hr>` | `IressDivider` | Medium |
|
|
92
|
+
| `<dialog>` / custom modal | `IressModal` | High |
|
|
93
|
+
| Custom drawer / slideout | `IressSlideout` | High |
|
|
94
|
+
| Custom tooltip | `IressTooltip` | Medium |
|
|
95
|
+
| Custom popover | `IressPopover` | Medium |
|
|
96
|
+
| Custom tabs | `IressTabSet` + `IressTab` | High |
|
|
97
|
+
| Custom spinner / loader | `IressSpinner` | Medium |
|
|
98
|
+
| Custom skeleton loader | `IressSkeleton` | Low |
|
|
99
|
+
| Custom progress bar | `IressProgress` | Low |
|
|
100
|
+
| Custom alert / toast | `IressAlert` / `IressToaster` | High |
|
|
101
|
+
| Custom card / panel | `IressCard` / `IressPanel` | Medium |
|
|
102
|
+
| Custom toggle / switch | `IressToggle` | High |
|
|
103
|
+
| Custom badge / tag | `IressTag` / `IressPill` | Low |
|
|
104
|
+
| Custom breadcrumbs | `IressBreadcrumbs` | Medium |
|
|
105
|
+
| Custom side navigation | `IressSideNav` | Medium |
|
|
106
|
+
| Custom context menu | `IressMenu` + `IressMenuItem` | Medium |
|
|
107
|
+
| Custom icon (SVG inline) | `IressIcon` | Medium |
|
|
108
|
+
| `<div>` with flex column styles | `IressStack` | Medium |
|
|
109
|
+
| `<div>` with flex row styles | `IressInline` | Medium |
|
|
110
|
+
| `<div>` with grid styles | `IressRow` + `IressCol` | Medium |
|
|
111
|
+
| `<div>` with max-width container | `IressContainer` | Low |
|
|
112
|
+
| `<form>` | `IressForm` + `IressFormField` | High |
|
|
113
|
+
| `<input type="range">` | `IressSlider` | Medium |
|
|
114
|
+
| `<input type="number">` (currency) | `IressField` + `IressInputCurrency` | Medium |
|
|
115
|
+
| `<details>` / custom accordion | `IressExpander` | Medium |
|
|
116
|
+
| Custom autocomplete / typeahead | `IressAutocomplete` | High |
|
|
117
|
+
| Custom select with search | `IressField` + `IressSelect` | High |
|
|
118
|
+
| Custom read-only display | `IressReadonly` | Medium |
|
|
119
|
+
| Custom segmented control / button group | `IressButtonGroup` | Medium |
|
|
120
|
+
| Custom validation messages | `IressValidationMessage` / `IressValidationSummary` | High |
|
|
121
|
+
| Custom styled wrapper `<div>` | `IressStyled` | Low |
|
|
122
|
+
|
|
123
|
+
#### What to Look For
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
// ❌ Raw HTML — should use IDS components
|
|
127
|
+
<button onClick={handleClick}>Submit</button>
|
|
128
|
+
<input type="text" placeholder="Name" />
|
|
129
|
+
<select>
|
|
130
|
+
<option>Option 1</option>
|
|
131
|
+
</select>
|
|
132
|
+
<div className="modal-overlay">...</div>
|
|
133
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>...</div>
|
|
134
|
+
|
|
135
|
+
// ✅ IDS components
|
|
136
|
+
<IressButton mode="primary" onClick={handleClick}>Submit</IressButton>
|
|
137
|
+
<IressField label="Name" htmlFor="name">
|
|
138
|
+
<IressInput id="name" placeholder="Name" />
|
|
139
|
+
</IressField>
|
|
140
|
+
<IressField label="Options" htmlFor="options">
|
|
141
|
+
<IressSelect id="options">
|
|
142
|
+
<option>Option 1</option>
|
|
143
|
+
</IressSelect>
|
|
144
|
+
</IressField>
|
|
145
|
+
<IressModal open={isOpen} onClose={handleClose}>...</IressModal>
|
|
146
|
+
<IressStack gap="4">...</IressStack>
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 2. Validate IDS Principles and Compliance
|
|
150
|
+
|
|
151
|
+
Check that the application follows these core IDS principles:
|
|
152
|
+
|
|
153
|
+
#### a. Provider & CSS Setup
|
|
154
|
+
|
|
155
|
+
- **IressProvider must wrap the application root** — Required for fonts, CSS variables, and theming
|
|
156
|
+
- **The IDS component CSS must be imported** — `@iress-oss/ids-components/dist/style.css` contains all component styles
|
|
157
|
+
- Users only need to install `@iress-oss/ids-components` — the tokens are bundled within the component library and do not need to be installed separately
|
|
158
|
+
- If using design tokens directly in application code (for custom styling), users should additionally install `@iress-oss/ids-tokens` and import `@iress-oss/ids-tokens/build/css-vars.css`
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
// ✅ Correct setup — minimum required
|
|
162
|
+
import '@iress-oss/ids-components/dist/style.css';
|
|
163
|
+
import { IressProvider } from '@iress-oss/ids-components';
|
|
164
|
+
|
|
165
|
+
function App() {
|
|
166
|
+
return <IressProvider>{/* app content */}</IressProvider>;
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
// ✅ With direct token usage in application code (optional)
|
|
172
|
+
import '@iress-oss/ids-components/dist/style.css';
|
|
173
|
+
import '@iress-oss/ids-tokens/build/css-vars.css';
|
|
174
|
+
import { IressProvider } from '@iress-oss/ids-components';
|
|
175
|
+
import { cssVars } from '@iress-oss/ids-tokens';
|
|
176
|
+
|
|
177
|
+
function App() {
|
|
178
|
+
return (
|
|
179
|
+
<IressProvider>
|
|
180
|
+
<div style={{ padding: cssVars.spacing[4] }}>{/* app content */}</div>
|
|
181
|
+
</IressProvider>
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
// ❌ Incorrect — missing component CSS
|
|
188
|
+
import { IressProvider } from '@iress-oss/ids-components';
|
|
189
|
+
// Components will render without styles!
|
|
190
|
+
|
|
191
|
+
// ❌ Incorrect — installing tokens separately just for provider setup
|
|
192
|
+
yarn add @iress-oss/ids-tokens // Not needed unless using tokens directly
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
#### b. Design Token Usage
|
|
196
|
+
|
|
197
|
+
- **Hardcoded colour values** — Flag any hex codes, rgb(), or named colours that should use IDS tokens
|
|
198
|
+
- **Hardcoded spacing** — Flag pixel values for padding/margin/gap that should use spacing tokens (multiples of 4px)
|
|
199
|
+
- **Hardcoded typography** — Flag font-family, font-size, font-weight that should use IDS typography tokens
|
|
200
|
+
- **Hardcoded border-radius** — Flag radius values that should use IDS radius tokens
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
// ❌ Hardcoded values
|
|
204
|
+
<div style={{ color: '#003271', padding: '16px', borderRadius: '4px' }}>
|
|
205
|
+
|
|
206
|
+
// ✅ IDS tokens
|
|
207
|
+
import { cssVars } from '@iress-oss/ids-tokens';
|
|
208
|
+
<div style={{
|
|
209
|
+
color: cssVars.colour.primary.fill,
|
|
210
|
+
padding: cssVars.spacing[4],
|
|
211
|
+
borderRadius: cssVars.radius[1]
|
|
212
|
+
}}>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
#### c. Form & Pattern Compliance
|
|
216
|
+
|
|
217
|
+
IDS provides several patterns (composite components) that ensure consistent UIs across applications. Validate that the application uses these patterns where appropriate.
|
|
218
|
+
|
|
219
|
+
##### Form Pattern (`IressForm`)
|
|
220
|
+
|
|
221
|
+
Forms should use `IressForm` and `IressFormField` instead of building custom form handling. This ensures consistent validation, error display, and state management.
|
|
222
|
+
|
|
223
|
+
- **Use `IressForm` for all forms** — Built on React Hook Form, it provides consistent validation, error handling, and state management
|
|
224
|
+
- **Use `IressFormField` for form fields** — Wraps form controls with `name`, `label`, and `rules` props for declarative validation
|
|
225
|
+
- **Use `IressFormFieldset` for grouped inputs** — For checkbox groups, radio groups, and other multi-input fields
|
|
226
|
+
- **Use `rules` prop for validation** — Declarative validation via React Hook Form rules, not custom validation logic
|
|
227
|
+
- **Use `onSubmit` for state syncing** — Sync form data with external state via the submit event, not per-field `onChange`
|
|
228
|
+
- **Use `useWatch` for conditional fields** — Not `useState` + `onChange` handlers
|
|
229
|
+
- **Choose the right form pattern** — Use `pattern="long"` for forms with >8 fields (sticky heading/actions), `pattern="short"` (default) for ≤8 fields
|
|
230
|
+
- **Use `react-hook-form` as a peer dependency** — Required alongside `@iress-oss/ids-components` when using `IressForm`
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
// ❌ Custom form handling
|
|
234
|
+
<form onSubmit={handleSubmit}>
|
|
235
|
+
<label>Email</label>
|
|
236
|
+
<IressInput value={email} onChange={(e) => setEmail(e.target.value)} />
|
|
237
|
+
{emailError && <span className="error">{emailError}</span>}
|
|
238
|
+
<button type="submit">Submit</button>
|
|
239
|
+
</form>
|
|
240
|
+
|
|
241
|
+
// ✅ IDS Form pattern
|
|
242
|
+
<IressForm onSubmit={handleSubmit} heading="Contact" actions={<IressButton mode="primary" type="submit">Submit</IressButton>}>
|
|
243
|
+
<IressFormField
|
|
244
|
+
name="email"
|
|
245
|
+
label="Email"
|
|
246
|
+
rules={{ required: true, pattern: { value: /^[^@]+@[^@]+$/, message: 'Invalid email' } }}
|
|
247
|
+
render={(controlledProps) => <IressInput {...controlledProps} type="email" />}
|
|
248
|
+
/>
|
|
249
|
+
</IressForm>
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
##### Loading Pattern (`IressLoading`)
|
|
253
|
+
|
|
254
|
+
Applications should use `IressLoading` for all loading states to ensure consistent timing behaviour and user experience.
|
|
255
|
+
|
|
256
|
+
- **Use `IressLoading` instead of custom spinners/skeletons** — It handles timing thresholds automatically (no indicator <500ms, spinner at 500ms, message at 2s, detailed feedback at 10s)
|
|
257
|
+
- **Choose the right loading pattern** — `page` for page loads, `component` for component loads, `start-up` for app initialisation, `validate` for form submission, `long` for operations >10s
|
|
258
|
+
- **Be consistent** — Use the same loading pattern for similar operations across the application
|
|
259
|
+
|
|
260
|
+
##### Dropdown Menu Pattern (`IressDropdownMenu`)
|
|
261
|
+
|
|
262
|
+
- **Use `IressDropdownMenu` for filter/action triggers** — Not custom popover menus
|
|
263
|
+
- **Do not use inside forms** — Use `IressSelect`, `IressRadioGroup`, or `IressCheckboxGroup` within forms instead
|
|
264
|
+
- **Enable `searchable` for 10+ options** — Improves usability for long option lists
|
|
265
|
+
|
|
266
|
+
##### Contextual Menu Pattern (`IressContextualMenu`)
|
|
267
|
+
|
|
268
|
+
- **Use for row-level or card-level secondary actions** — Not custom context menus
|
|
269
|
+
- **Place destructive actions at the end** — Follow the established convention
|
|
270
|
+
- **Provide meaningful `ariaLabel`** — Describe the menu purpose in context
|
|
271
|
+
|
|
272
|
+
##### Side Navigation Pattern (`IressSideNav`)
|
|
273
|
+
|
|
274
|
+
- **Use for application shell navigation** — Not custom sidebar implementations
|
|
275
|
+
- **Use for multi-section apps** — When the application has several major sections with sub-navigation
|
|
276
|
+
|
|
277
|
+
##### Breadcrumbs Pattern (`IressBreadcrumbs`)
|
|
278
|
+
|
|
279
|
+
- **Use for site hierarchy navigation** — Not custom breadcrumb implementations
|
|
280
|
+
- **Last item should represent current page** — And not be clickable
|
|
281
|
+
|
|
282
|
+
##### Shadow DOM Pattern (`IressShadow`)
|
|
283
|
+
|
|
284
|
+
- **Use for microfrontend isolation** — When you need to isolate styles from the host application
|
|
285
|
+
- **Alternative to `IressProvider`** — Injects styles into the shadow DOM instead of the document head
|
|
286
|
+
|
|
287
|
+
##### Form Accessibility
|
|
288
|
+
|
|
289
|
+
- **All form inputs must have labels** — Use `IressField` (standalone inputs) or `IressFormField` (within `IressForm`) to provide labels, hints, and validation
|
|
290
|
+
- **Required fields must be marked** — Use `required` prop on `IressField` or `rules={{ required: true }}` on `IressFormField`
|
|
291
|
+
- **Validation messages must use IDS patterns** — Use `IressField` `status` and `statusMessage` props, or `IressFormField` `rules` prop for declarative validation
|
|
292
|
+
- **Form inputs must have `id` and `htmlFor` pairing** — For label association when using `IressField` directly
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
// ❌ Missing label / accessibility
|
|
296
|
+
<IressInput placeholder="Email" />
|
|
297
|
+
|
|
298
|
+
// ✅ Accessible standalone form input
|
|
299
|
+
<IressField label="Email" htmlFor="email" required>
|
|
300
|
+
<IressInput id="email" type="email" placeholder="Enter your email" />
|
|
301
|
+
</IressField>
|
|
302
|
+
|
|
303
|
+
// ✅ Accessible form input within IressForm
|
|
304
|
+
<IressFormField
|
|
305
|
+
name="email"
|
|
306
|
+
label="Email"
|
|
307
|
+
rules={{ required: true }}
|
|
308
|
+
render={(controlledProps) => <IressInput {...controlledProps} type="email" />}
|
|
309
|
+
/>
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
#### d. Button Hierarchy
|
|
313
|
+
|
|
314
|
+
- **One primary action per section** — Only one `mode="primary"` button per logical section
|
|
315
|
+
- **Consistent button mode usage** — Primary for main action, secondary for supporting actions, tertiary/muted for less prominent actions
|
|
316
|
+
- **Danger actions use status prop** — `status="danger"` for destructive actions, not red styling
|
|
317
|
+
|
|
318
|
+
#### e. Layout Consistency
|
|
319
|
+
|
|
320
|
+
- **Use IDS layout components** — `IressStack`, `IressInline`, `IressRow`/`IressCol` instead of custom CSS flex/grid
|
|
321
|
+
- **Use spacing tokens for gaps** — Values 0–10 on `gap` prop
|
|
322
|
+
- **Use IressCSSProps for spacing** — `m`, `mx`, `my`, `p`, `px`, `py` props instead of inline styles
|
|
323
|
+
- **Responsive design** — Use `IressHide`, `hideFrom`/`hideBelow` for responsive visibility
|
|
324
|
+
|
|
325
|
+
#### f. Semantic Component Usage
|
|
326
|
+
|
|
327
|
+
- **Use `IressText` for all text** — Instead of raw `<p>`, `<span>`, `<h1>`–`<h6>` (unless nested inside `IressText` for styling)
|
|
328
|
+
- **Use `IressAlert` for feedback** — Instead of custom notification/alert components
|
|
329
|
+
- **Use `IressIcon` for icons** — Instead of inline SVGs or custom icon components (unless the icon is a hero graphic that doesn't fit the standard icon use case)
|
|
330
|
+
- **Use `IressDivider` for separators** — Instead of `<hr>` or custom dividers (unless nested inside `IressText` for inline separation)
|
|
331
|
+
|
|
332
|
+
#### g. Acceptable Exceptions
|
|
333
|
+
|
|
334
|
+
Not every raw HTML element is a violation. The following are **acceptable exceptions** that should NOT be flagged:
|
|
335
|
+
|
|
336
|
+
| Pattern | Why It's Acceptable |
|
|
337
|
+
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
338
|
+
| `<a>` inside markdown/MDX renderers | Content-driven, not application UI |
|
|
339
|
+
| `<button>` inside third-party widgets the app cannot control | External dependency constraint |
|
|
340
|
+
| `<table>` in email templates | Email clients don't support custom components |
|
|
341
|
+
| `<img>` in SVG sprites or `<picture>` elements | IressImage doesn't cover these use cases |
|
|
342
|
+
| `<div>` for ref targets, portals, or measurement containers | Technical necessity, not layout |
|
|
343
|
+
| Raw elements in test files / stories for demonstration | Not shipped to users |
|
|
344
|
+
| `<form>` wrapping a single action (e.g., search bar) | `IressForm` is best for multi-field forms; standalone search inputs may use `IressAutocomplete` or `IressField` + `IressInput` directly |
|
|
345
|
+
| `<input type="hidden">` | Not user-facing UI |
|
|
346
|
+
| Custom components wrapping IDS components internally | App-level abstraction is valid as long as IDS components are used underneath |
|
|
347
|
+
|
|
348
|
+
**When reporting:** If a potential violation falls into an exception category, note it as "Reviewed — Acceptable Exception" rather than a finding. This prevents false positives and keeps reports actionable.
|
|
349
|
+
|
|
350
|
+
### 3. Provide Recommendations
|
|
351
|
+
|
|
352
|
+
Based on the audit findings, provide prioritised recommendations:
|
|
353
|
+
|
|
354
|
+
#### Priority Levels
|
|
355
|
+
|
|
356
|
+
| Priority | Description | Action |
|
|
357
|
+
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
|
358
|
+
| **Critical** | Missing IressProvider, missing component CSS import, raw form inputs without labels, missing skip links, forms not using `IressForm` | Must fix immediately |
|
|
359
|
+
| **High** | Raw HTML buttons/inputs/selects/tables/modals, custom form handling instead of `IressForm`, custom loading instead of `IressLoading`, accessibility failures (colour contrast, missing alt text, focus trapping) | Fix in current sprint |
|
|
360
|
+
| **Medium** | Hardcoded colours/spacing, missing IressText usage, custom layout instead of IDS layout, custom menus instead of `IressContextualMenu`/`IressDropdownMenu`, missing ARIA landmarks | Plan for next sprint |
|
|
361
|
+
| **Low** | Missing IressImage, custom badges, minor token inconsistencies, non-critical accessibility improvements | Backlog |
|
|
362
|
+
|
|
363
|
+
#### Recommendation Format
|
|
364
|
+
|
|
365
|
+
For each finding, provide:
|
|
366
|
+
|
|
367
|
+
1. **What was found** — The specific code or pattern that needs attention
|
|
368
|
+
2. **Why it matters** — Impact on consistency, accessibility, or maintainability
|
|
369
|
+
3. **How to fix** — Specific code change with before/after examples
|
|
370
|
+
4. **Priority** — Critical, High, Medium, or Low
|
|
371
|
+
|
|
372
|
+
### 4. Generate Compliance Report
|
|
373
|
+
|
|
374
|
+
Produce a structured report covering all audit areas. Use the report template to structure the output.
|
|
375
|
+
|
|
376
|
+
# IDS UI Doctor Report Template
|
|
377
|
+
|
|
378
|
+
Use this template when generating compliance reports.
|
|
379
|
+
|
|
380
|
+
```markdown
|
|
381
|
+
# IDS UI Doctor Report
|
|
382
|
+
|
|
383
|
+
**Application:** [App Name]
|
|
384
|
+
**Date:** [Audit Date]
|
|
385
|
+
**Overall Score:** [X/100]
|
|
386
|
+
|
|
387
|
+
## Executive Summary
|
|
388
|
+
|
|
389
|
+
[2-3 sentence summary of overall IDS compliance status]
|
|
390
|
+
|
|
391
|
+
## Score Breakdown
|
|
392
|
+
|
|
393
|
+
| Category | Score | Max | Status |
|
|
394
|
+
| ----------------------- | ----- | ------- | -------- |
|
|
395
|
+
| IDS Component Usage | X | 25 | 🔴/🟡/🟢 |
|
|
396
|
+
| IDS Pattern Compliance | X | 20 | 🔴/🟡/🟢 |
|
|
397
|
+
| Accessibility | X | 20 | 🔴/🟡/🟢 |
|
|
398
|
+
| Design Token Compliance | X | 15 | 🔴/🟡/🟢 |
|
|
399
|
+
| Layout & Spacing | X | 10 | 🔴/🟡/🟢 |
|
|
400
|
+
| Provider & Setup | X | 10 | 🔴/🟡/🟢 |
|
|
401
|
+
| **Total** | **X** | **100** | |
|
|
402
|
+
|
|
403
|
+
### Scoring Guide
|
|
404
|
+
|
|
405
|
+
- 🟢 **90–100%** — Excellent IDS compliance
|
|
406
|
+
- 🟡 **60–89%** — Moderate compliance, improvements needed
|
|
407
|
+
- 🔴 **Below 60%** — Significant gaps, prioritise remediation
|
|
408
|
+
|
|
409
|
+
## Detailed Findings
|
|
410
|
+
|
|
411
|
+
### IDS Component Usage (X/25)
|
|
412
|
+
|
|
413
|
+
#### Components Correctly Used
|
|
414
|
+
|
|
415
|
+
- [List of IDS components found and correctly used]
|
|
416
|
+
|
|
417
|
+
#### Missing IDS Component Opportunities
|
|
418
|
+
|
|
419
|
+
| Location | Current Code | Recommended IDS Component | Priority |
|
|
420
|
+
| ----------- | ------------ | ------------------------- | -------- |
|
|
421
|
+
| [file:line] | `<button>` | `IressButton` | High |
|
|
422
|
+
| ... | ... | ... | ... |
|
|
423
|
+
|
|
424
|
+
### IDS Pattern Compliance (X/20)
|
|
425
|
+
|
|
426
|
+
#### Pattern Usage
|
|
427
|
+
|
|
428
|
+
| Location | Current Pattern | Recommended IDS Pattern | Priority |
|
|
429
|
+
| ----------- | ----------------------------- | ------------------------------ | -------- |
|
|
430
|
+
| [file:line] | Custom `<form>` with useState | `IressForm` + `IressFormField` | High |
|
|
431
|
+
| [file:line] | Custom loading spinner | `IressLoading pattern="page"` | High |
|
|
432
|
+
| [file:line] | Custom context menu | `IressContextualMenu` | Medium |
|
|
433
|
+
| ... | ... | ... | ... |
|
|
434
|
+
|
|
435
|
+
### Accessibility (X/20)
|
|
436
|
+
|
|
437
|
+
#### Issues Found
|
|
438
|
+
|
|
439
|
+
| Location | Issue | Severity | WCAG Criterion |
|
|
440
|
+
| ----------- | ---------------------------- | -------- | ---------------------------- |
|
|
441
|
+
| [file:line] | Input missing label | Critical | 1.3.1 Info and Relationships |
|
|
442
|
+
| [file:line] | No skip link | High | 2.4.1 Bypass Blocks |
|
|
443
|
+
| [file:line] | Colour-only status indicator | High | 1.4.1 Use of Color |
|
|
444
|
+
| [file:line] | Missing alt text on image | Medium | 1.1.1 Non-text Content |
|
|
445
|
+
| ... | ... | ... | ... |
|
|
446
|
+
|
|
447
|
+
### Design Token Compliance (X/15)
|
|
448
|
+
|
|
449
|
+
#### Hardcoded Values Found
|
|
450
|
+
|
|
451
|
+
| Location | Current Value | Recommended Token | Category |
|
|
452
|
+
| ----------- | ------------- | --------------------- | -------- |
|
|
453
|
+
| [file:line] | `#003271` | `colour.primary.fill` | Colour |
|
|
454
|
+
| [file:line] | `16px` | `spacing.4` | Spacing |
|
|
455
|
+
| ... | ... | ... | ... |
|
|
456
|
+
|
|
457
|
+
### Layout & Spacing (X/10)
|
|
458
|
+
|
|
459
|
+
#### Custom Layout Patterns
|
|
460
|
+
|
|
461
|
+
| Location | Current Pattern | IDS Alternative |
|
|
462
|
+
| ----------- | --------------------------------------- | --------------- |
|
|
463
|
+
| [file:line] | `display: flex; flex-direction: column` | `IressStack` |
|
|
464
|
+
| ... | ... | ... |
|
|
465
|
+
|
|
466
|
+
### Provider & Setup (X/10)
|
|
467
|
+
|
|
468
|
+
- [ ] IressProvider wraps application root
|
|
469
|
+
- [ ] `@iress-oss/ids-components/dist/style.css` imported
|
|
470
|
+
- [ ] `@iress-oss/ids-tokens/build/css-vars.css` imported (only if using tokens directly)
|
|
471
|
+
- [ ] `react-hook-form` installed (if using IressForm)
|
|
472
|
+
- [ ] No conflicting CSS resets
|
|
473
|
+
|
|
474
|
+
## Recommendations Summary
|
|
475
|
+
|
|
476
|
+
### Critical (Fix Immediately)
|
|
477
|
+
|
|
478
|
+
1. [Finding and remediation]
|
|
479
|
+
|
|
480
|
+
### High Priority (Current Sprint)
|
|
481
|
+
|
|
482
|
+
1. [Finding and remediation]
|
|
483
|
+
|
|
484
|
+
### Medium Priority (Next Sprint)
|
|
485
|
+
|
|
486
|
+
1. [Finding and remediation]
|
|
487
|
+
|
|
488
|
+
### Low Priority (Backlog)
|
|
489
|
+
|
|
490
|
+
1. [Finding and remediation]
|
|
491
|
+
|
|
492
|
+
## IDS Components Available But Not Used
|
|
493
|
+
|
|
494
|
+
[List any IDS components that could benefit the application but are not currently imported]
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
## Audit Checklist
|
|
498
|
+
|
|
499
|
+
Use the full audit checklist when performing a UI doctor audit. It covers setup & configuration, component usage, design tokens, pattern usage, accessibility, layout, button hierarchy, and usability heuristics (based on Nielsen's 10 heuristics).
|
|
500
|
+
|
|
501
|
+
# IDS UI Doctor Audit Checklist
|
|
502
|
+
|
|
503
|
+
Use this checklist when performing a UI doctor audit.
|
|
504
|
+
|
|
505
|
+
## Setup & Configuration
|
|
506
|
+
|
|
507
|
+
- [ ] `IressProvider` wraps the application root
|
|
508
|
+
- [ ] `@iress-oss/ids-components/dist/style.css` is imported (required for component styles)
|
|
509
|
+
- [ ] `@iress-oss/ids-components` is a project dependency
|
|
510
|
+
- [ ] `@iress-oss/ids-tokens/build/css-vars.css` is imported only if tokens are used directly in application code
|
|
511
|
+
- [ ] `react-hook-form` is installed as a peer dependency if using `IressForm`
|
|
512
|
+
- [ ] No conflicting global CSS resets that override IDS styles
|
|
513
|
+
|
|
514
|
+
## Component Usage
|
|
515
|
+
|
|
516
|
+
- [ ] No raw `<button>` elements — use `IressButton`
|
|
517
|
+
- [ ] No raw `<input>` elements — use `IressField` + `IressInput`
|
|
518
|
+
- [ ] No raw `<select>` elements — use `IressField` + `IressSelect`
|
|
519
|
+
- [ ] No raw `<form>` elements — use `IressForm` + `IressFormField`
|
|
520
|
+
- [ ] No raw `<table>` elements — use `IressTable`
|
|
521
|
+
- [ ] No raw `<input type="range">` — use `IressSlider`
|
|
522
|
+
- [ ] No custom modal/dialog — use `IressModal`
|
|
523
|
+
- [ ] No custom drawer — use `IressSlideout`
|
|
524
|
+
- [ ] No custom tabs — use `IressTabSet`
|
|
525
|
+
- [ ] No custom tooltip — use `IressTooltip`
|
|
526
|
+
- [ ] No custom alert/toast — use `IressAlert` / `IressToaster`
|
|
527
|
+
- [ ] No custom accordion/details — use `IressExpander`
|
|
528
|
+
- [ ] No custom autocomplete/typeahead — use `IressAutocomplete`
|
|
529
|
+
- [ ] No custom select-with-search — use `IressSelect`
|
|
530
|
+
- [ ] No custom read-only display — use `IressReadonly`
|
|
531
|
+
- [ ] No custom button group / segmented control — use `IressButtonGroup`
|
|
532
|
+
- [ ] No custom validation messages — use `IressValidationMessage` / `IressValidationSummary`
|
|
533
|
+
- [ ] No third-party UI library components (MUI, Ant, Chakra, etc.) where IDS equivalents exist
|
|
534
|
+
|
|
535
|
+
## Design Tokens
|
|
536
|
+
|
|
537
|
+
- [ ] No hardcoded colour hex/rgb values — use IDS colour tokens
|
|
538
|
+
- [ ] No hardcoded pixel spacing — use IDS spacing tokens
|
|
539
|
+
- [ ] No hardcoded font properties — use IDS typography tokens
|
|
540
|
+
- [ ] No hardcoded border-radius — use IDS radius tokens
|
|
541
|
+
|
|
542
|
+
## Pattern Usage
|
|
543
|
+
|
|
544
|
+
- [ ] Forms use `IressForm` + `IressFormField` instead of custom form handling
|
|
545
|
+
- [ ] Form validation uses declarative `rules` prop, not custom validation logic
|
|
546
|
+
- [ ] Form state managed via React Hook Form (`useWatch`, `ref`), not `useState` + `onChange`
|
|
547
|
+
- [ ] Long forms (>8 fields) use `pattern="long"` for sticky heading/actions
|
|
548
|
+
- [ ] Loading states use `IressLoading` with the appropriate pattern
|
|
549
|
+
- [ ] Filter/action dropdowns use `IressDropdownMenu` (not inside forms)
|
|
550
|
+
- [ ] Row-level actions use `IressContextualMenu`
|
|
551
|
+
- [ ] Application shell navigation uses `IressSideNav`
|
|
552
|
+
- [ ] Hierarchy navigation uses `IressBreadcrumbs`
|
|
553
|
+
- [ ] Microfrontend style isolation uses `IressShadow`
|
|
554
|
+
|
|
555
|
+
## Accessibility
|
|
556
|
+
|
|
557
|
+
- [ ] All form inputs have associated labels via `IressField` or `IressFormField`
|
|
558
|
+
- [ ] Required fields are marked with `required` prop or `rules={{ required: true }}`
|
|
559
|
+
- [ ] Validation messages use IDS patterns (`IressField` status or `IressFormField` rules)
|
|
560
|
+
- [ ] Interactive elements have accessible names
|
|
561
|
+
- [ ] Skip links present for keyboard navigation (`IressSkipLink`)
|
|
562
|
+
- [ ] Colour contrast meets WCAG 2.1 AA (4.5:1 for normal text, 3:1 for large text) — use IDS colour tokens which are pre-validated
|
|
563
|
+
- [ ] Focus indicators are visible on all interactive elements — IDS components provide these by default
|
|
564
|
+
- [ ] Keyboard navigation works for all interactive elements (Tab, Enter, Space, Escape, Arrow keys)
|
|
565
|
+
- [ ] Images have meaningful `alt` text (use `IressImage` which requires `alt` prop)
|
|
566
|
+
- [ ] Modal and slideout components trap focus correctly — `IressModal` and `IressSlideout` handle this automatically
|
|
567
|
+
- [ ] ARIA landmarks are used appropriately (`<nav>`, `<main>`, `<aside>`, etc.)
|
|
568
|
+
- [ ] `IressSideNav` uses proper `<nav>` landmark with `aria-label`
|
|
569
|
+
- [ ] `IressBreadcrumbs` uses `<nav>` with `aria-label` and `aria-current="page"` on the last item
|
|
570
|
+
- [ ] `IressContextualMenu` has a meaningful `ariaLabel` describing the menu purpose
|
|
571
|
+
- [ ] Tables use `IressTable` with proper header cells (`IressTable.HeaderCell`) for screen readers
|
|
572
|
+
- [ ] Dynamic content updates (loading states, alerts, toasts) are announced to screen readers
|
|
573
|
+
- [ ] `IressAlert` is used for status messages (automatically uses appropriate ARIA roles)
|
|
574
|
+
- [ ] `IressToaster` is used for transient notifications (uses `aria-live` region)
|
|
575
|
+
- [ ] No reliance on colour alone to convey information — use text, icons, or patterns alongside colour
|
|
576
|
+
|
|
577
|
+
## Layout
|
|
578
|
+
|
|
579
|
+
- [ ] Vertical stacks use `IressStack`
|
|
580
|
+
- [ ] Horizontal rows use `IressInline`
|
|
581
|
+
- [ ] Grid layouts use `IressRow` + `IressCol`
|
|
582
|
+
- [ ] Spacing props use IDS token values (0–10)
|
|
583
|
+
- [ ] Responsive visibility uses `IressHide` or `hideFrom`/`hideBelow`
|
|
584
|
+
|
|
585
|
+
## Button Hierarchy
|
|
586
|
+
|
|
587
|
+
- [ ] Maximum one `mode="primary"` button per section
|
|
588
|
+
- [ ] Destructive actions use `status="danger"` not custom red styling
|
|
589
|
+
- [ ] Icon-only buttons include accessible text
|
|
590
|
+
|
|
591
|
+
## Usability Heuristics
|
|
592
|
+
|
|
593
|
+
Evaluate the application against these usability principles (based on [Nielsen's 10 Usability Heuristics](https://www.nngroup.com/articles/ten-usability-heuristics/)). Each heuristic includes concrete IDS guidance for how to satisfy it.
|
|
594
|
+
|
|
595
|
+
### 1. Visibility of System Status
|
|
596
|
+
|
|
597
|
+
The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
|
|
598
|
+
|
|
599
|
+
- [ ] Loading states use `IressLoading` with the correct pattern (`page`, `component`, `start-up`, `validate`, `long`) so users always see feedback proportional to wait time
|
|
600
|
+
- [ ] Form submission provides visible feedback — use `IressLoading pattern="validate"` during submission, `IressAlert` or `IressToaster` for success/failure
|
|
601
|
+
- [ ] Progress indicators are used for multi-step processes — `IressProgress` for deterministic operations, `IressSpinner` for indeterminate
|
|
602
|
+
- [ ] Active states are visible — selected tabs (`IressTabSet`), active nav items (`IressSideNav`), current breadcrumb (`IressBreadcrumbs`) all show where the user is
|
|
603
|
+
- [ ] Toggled/selected states are visually clear — `IressToggle`, `IressCheckbox`, `IressRadio` provide built-in active states
|
|
604
|
+
|
|
605
|
+
### 2. Match Between System and the Real World
|
|
606
|
+
|
|
607
|
+
The system should speak the user's language, with words, phrases, and concepts familiar to the user.
|
|
608
|
+
|
|
609
|
+
- [ ] Labels use plain, domain-appropriate language — avoid technical jargon in `IressField` labels, `IressButton` text, and `IressAlert` messages
|
|
610
|
+
- [ ] Icons are recognisable and paired with text — use `IressIcon` with a text label; avoid icon-only actions unless the icon is universally understood (e.g., close ✕, search 🔍)
|
|
611
|
+
- [ ] Status colours follow real-world conventions — `info` (blue), `success` (green), `warning` (amber), `danger` (red) via IDS status tokens
|
|
612
|
+
- [ ] Form fields are ordered logically — group related fields with `IressFormFieldset`, order by natural workflow
|
|
613
|
+
|
|
614
|
+
### 3. User Control and Freedom
|
|
615
|
+
|
|
616
|
+
Users often perform actions by mistake. They need a clearly marked "emergency exit" to leave the unwanted action.
|
|
617
|
+
|
|
618
|
+
- [ ] Modals have a visible close button and Escape key dismissal — `IressModal` provides both by default
|
|
619
|
+
- [ ] Slideouts can be dismissed — `IressSlideout` supports close button and backdrop click
|
|
620
|
+
- [ ] Destructive actions require confirmation — use `IressModal` as a confirmation dialog before delete/remove operations
|
|
621
|
+
- [ ] Forms support cancel/reset — include a secondary `IressButton` for cancel alongside the primary submit action
|
|
622
|
+
- [ ] Multi-step flows allow going back — breadcrumbs (`IressBreadcrumbs`) or back buttons let users reverse navigation
|
|
623
|
+
- [ ] Toasts are dismissible — `IressToaster` notifications can be closed by the user
|
|
624
|
+
|
|
625
|
+
### 4. Consistency and Standards
|
|
626
|
+
|
|
627
|
+
Users should not have to wonder whether different words, situations, or actions mean the same thing.
|
|
628
|
+
|
|
629
|
+
- [ ] All components come from IDS — no mix of IDS + third-party + custom for the same purpose (e.g., some buttons IDS, some MUI)
|
|
630
|
+
- [ ] Design tokens are used consistently — no mix of hardcoded values and tokens for the same property (e.g., some colours from tokens, some hardcoded)
|
|
631
|
+
- [ ] Same action, same pattern — similar forms use the same `IressForm` pattern, similar loading states use the same `IressLoading` pattern
|
|
632
|
+
- [ ] Button hierarchy is consistent — `mode="primary"` always means the main action, `mode="secondary"` always means supporting action, across all views
|
|
633
|
+
- [ ] Terminology is consistent — the same action uses the same label everywhere (e.g., "Save" not sometimes "Save" and sometimes "Submit" for the same operation)
|
|
634
|
+
|
|
635
|
+
### 5. Error Prevention
|
|
636
|
+
|
|
637
|
+
Even better than good error messages is a careful design that prevents a problem from occurring in the first place.
|
|
638
|
+
|
|
639
|
+
- [ ] Form validation uses declarative `rules` — `IressFormField` `rules` prop prevents invalid submissions before they happen
|
|
640
|
+
- [ ] Required fields are clearly marked — `required` prop on `IressField` or `rules={{ required: true }}` on `IressFormField`
|
|
641
|
+
- [ ] Input constraints are communicated — use `hint` prop on `IressField`/`IressFormField` to show format expectations, character limits, or examples
|
|
642
|
+
- [ ] Destructive actions require explicit confirmation — delete/remove behind `IressModal` confirmation, not a single click
|
|
643
|
+
- [ ] Dangerous buttons are visually distinct — `status="danger"` on `IressButton` prevents casual clicks
|
|
644
|
+
- [ ] Dropdown menus place destructive items last and visually separate — `IressContextualMenu` convention
|
|
645
|
+
|
|
646
|
+
### 6. Recognition Rather Than Recall
|
|
647
|
+
|
|
648
|
+
Minimise the user's memory load by making elements, actions, and options visible.
|
|
649
|
+
|
|
650
|
+
- [ ] Navigation is persistent — `IressSideNav` keeps sections visible rather than hidden behind hamburger menus on desktop
|
|
651
|
+
- [ ] Breadcrumbs show location — `IressBreadcrumbs` reminds users where they are in the hierarchy
|
|
652
|
+
- [ ] Form labels are always visible — `IressField` labels appear above inputs, not as disappearing placeholder text
|
|
653
|
+
- [ ] Actions are visible, not hidden — use `IressButton` for primary actions, `IressContextualMenu` for secondary, avoid burying actions in deep menus
|
|
654
|
+
- [ ] Searchable options for long lists — `IressDropdownMenu` with `searchable` for 10+ options, `IressAutocomplete` for typeahead
|
|
655
|
+
|
|
656
|
+
### 7. Flexibility and Efficiency of Use
|
|
657
|
+
|
|
658
|
+
Accelerators — unseen by the novice user — may speed up interaction for the expert user.
|
|
659
|
+
|
|
660
|
+
- [ ] Keyboard shortcuts for power users — ensure all interactive IDS components respond to standard keyboard patterns (Enter, Space, Escape, Arrow keys)
|
|
661
|
+
- [ ] Skip links for keyboard users — `IressSkipLink` lets experienced keyboard users bypass repetitive navigation
|
|
662
|
+
- [ ] Searchable selects — `IressSelect` and `IressDropdownMenu` with search enabled let power users type to filter instead of scrolling
|
|
663
|
+
- [ ] Autocomplete for repetitive input — `IressAutocomplete` reduces typing for known-value fields
|
|
664
|
+
- [ ] Responsive layouts — `IressHide`, `hideFrom`/`hideBelow` adapt the interface for different device contexts
|
|
665
|
+
|
|
666
|
+
### 8. Aesthetic and Minimalist Design
|
|
667
|
+
|
|
668
|
+
Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.
|
|
669
|
+
|
|
670
|
+
- [ ] Use IDS typography scale — `IressText` with appropriate `textStyle` creates clear visual hierarchy without custom styling
|
|
671
|
+
- [ ] Spacing is consistent and intentional — `IressStack`, `IressInline`, and spacing tokens prevent visual clutter
|
|
672
|
+
- [ ] One primary action per section — `mode="primary"` on a single `IressButton` draws the eye to what matters
|
|
673
|
+
- [ ] Use `IressCard` / `IressPanel` to group related content — rather than showing everything in a flat layout
|
|
674
|
+
- [ ] Loading states use `IressLoading` progressive disclosure — no indicator <500ms, spinner at 500ms, message at 2s (avoids unnecessary visual noise for fast operations)
|
|
675
|
+
- [ ] Alerts are used sparingly and appropriately — `IressAlert` for persistent status, `IressToaster` for transient feedback
|
|
676
|
+
|
|
677
|
+
### 9. Help Users Recognise, Diagnose, and Recover from Errors
|
|
678
|
+
|
|
679
|
+
Error messages should be expressed in plain language (no error codes), precisely indicate the problem, and constructively suggest a solution.
|
|
680
|
+
|
|
681
|
+
- [ ] Validation messages are human-readable — `IressFormField` `rules` `message` prop provides user-friendly text, not technical codes
|
|
682
|
+
- [ ] Errors appear next to the relevant field — `IressFormField` and `IressField` display inline validation, not in a separate area
|
|
683
|
+
- [ ] Summary of errors for long forms — `IressValidationSummary` at the top of long forms helps users find all issues
|
|
684
|
+
- [ ] Status indicators are clear — `IressField` `status="danger"` with `statusMessage` for field-level errors, `IressAlert status="danger"` for page-level errors
|
|
685
|
+
- [ ] Error state is visually distinct — IDS danger tokens (red border, red text) are applied automatically by `status="danger"`
|
|
686
|
+
- [ ] Recovery path is clear — error messages suggest what to do (e.g., "Enter a valid email address" not just "Invalid input")
|
|
687
|
+
|
|
688
|
+
### 10. Help and Documentation
|
|
689
|
+
|
|
690
|
+
Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation.
|
|
691
|
+
|
|
692
|
+
- [ ] Hint text guides input — `IressField` and `IressFormField` `hint` prop provides contextual guidance below the label
|
|
693
|
+
- [ ] Tooltips explain non-obvious UI — `IressTooltip` for supplementary information on icons, abbreviations, or complex fields
|
|
694
|
+
- [ ] Placeholder text is supplementary, not the only label — `placeholder` is used alongside `IressField` `label`, never as a replacement
|
|
695
|
+
- [ ] Complex workflows have contextual help — use `IressAlert status="info"` or `IressPopover` to explain steps in multi-part processes
|
|
696
|
+
|
|
697
|
+
## Example Audit Output
|
|
698
|
+
|
|
699
|
+
### Quick Scan Summary
|
|
700
|
+
|
|
701
|
+
```
|
|
702
|
+
IDS UI Doctor — Quick Scan
|
|
703
|
+
================================
|
|
704
|
+
Files scanned: 42
|
|
705
|
+
Components found: 18 IDS / 7 raw HTML
|
|
706
|
+
Patterns used: 3/7 available
|
|
707
|
+
Token compliance: 73%
|
|
708
|
+
Accessibility: 82%
|
|
709
|
+
|
|
710
|
+
Top Issues:
|
|
711
|
+
⚠ 3× raw <button> found (should be IressButton)
|
|
712
|
+
⚠ 2× hardcoded colours found (#333, #f5f5f5)
|
|
713
|
+
⚠ 1× <input> without IressField wrapper
|
|
714
|
+
⚠ 2× custom <form> found (should use IressForm)
|
|
715
|
+
⚠ 1× custom loading spinner (should use IressLoading)
|
|
716
|
+
⚠ 1× missing skip link for keyboard navigation
|
|
717
|
+
✓ IressProvider correctly configured
|
|
718
|
+
✓ Component CSS imported
|
|
719
|
+
✓ IressBreadcrumbs used for navigation hierarchy
|
|
720
|
+
✓ Colour contrast passes WCAG AA
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
## Reference
|
|
724
|
+
|
|
725
|
+
> **Note:** Component docs, pattern docs, and the manifest are within the package itself.
|
|
726
|
+
|
|
727
|
+
- **Component docs:** `node_modules/@iress-oss/ids-components/.ai/components/`
|
|
728
|
+
- **Pattern docs:** `node_modules/@iress-oss/ids-components/.ai/patterns/`
|
|
729
|
+
- **Index (full component list):** `node_modules/@iress-oss/ids-components/.ai/index.json`
|
|
730
|
+
- **Token usage skill:** `.agents/skills/token-usage/SKILL.md`
|
|
731
|
+
- **Figma mapping skill:** `.agents/skills/figma-to-ids/SKILL.md`
|
|
732
|
+
- **UI translation skill:** `.agents/skills/ui-translation/SKILL.md`
|
|
733
|
+
- **Storybook and Guidelines:** https://main--691abcc79dfa560a36d0a74f.chromatic.com
|