@dsn-starter-kit/components-react 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +181 -0
- package/dist/ActionGroup/ActionGroup.css +55 -0
- package/dist/ActionGroup/ActionGroup.d.ts +41 -0
- package/dist/ActionGroup/ActionGroup.d.ts.map +1 -0
- package/dist/ActionGroup/ActionGroup.js +36 -0
- package/dist/ActionGroup/ActionGroup.js.map +1 -0
- package/dist/ActionGroup/index.d.ts +3 -0
- package/dist/ActionGroup/index.d.ts.map +1 -0
- package/dist/ActionGroup/index.js +2 -0
- package/dist/ActionGroup/index.js.map +1 -0
- package/dist/Alert/Alert.css +145 -0
- package/dist/Alert/Alert.d.ts +69 -0
- package/dist/Alert/Alert.d.ts.map +1 -0
- package/dist/Alert/Alert.js +57 -0
- package/dist/Alert/Alert.js.map +1 -0
- package/dist/Alert/index.d.ts +3 -0
- package/dist/Alert/index.d.ts.map +1 -0
- package/dist/Alert/index.js +2 -0
- package/dist/Alert/index.js.map +1 -0
- package/dist/Backdrop/Backdrop.css +30 -0
- package/dist/Backdrop/Backdrop.d.ts +26 -0
- package/dist/Backdrop/Backdrop.d.ts.map +1 -0
- package/dist/Backdrop/Backdrop.js +23 -0
- package/dist/Backdrop/Backdrop.js.map +1 -0
- package/dist/Backdrop/index.d.ts +3 -0
- package/dist/Backdrop/index.d.ts.map +1 -0
- package/dist/Backdrop/index.js +2 -0
- package/dist/Backdrop/index.js.map +1 -0
- package/dist/Body/Body.css +14 -0
- package/dist/Body/Body.d.ts +27 -0
- package/dist/Body/Body.d.ts.map +1 -0
- package/dist/Body/Body.js +27 -0
- package/dist/Body/Body.js.map +1 -0
- package/dist/Body/index.d.ts +3 -0
- package/dist/Body/index.d.ts.map +1 -0
- package/dist/Body/index.js +2 -0
- package/dist/Body/index.js.map +1 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigation.css +216 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigation.d.ts +43 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigation.d.ts.map +1 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigation.js +42 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigation.js.map +1 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.d.ts +32 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.d.ts.map +1 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.js +20 -0
- package/dist/BreadcrumbNavigation/BreadcrumbNavigationItem.js.map +1 -0
- package/dist/BreadcrumbNavigation/index.d.ts +3 -0
- package/dist/BreadcrumbNavigation/index.d.ts.map +1 -0
- package/dist/BreadcrumbNavigation/index.js +3 -0
- package/dist/BreadcrumbNavigation/index.js.map +1 -0
- package/dist/BreakoutSection/BreakoutSection.css +19 -0
- package/dist/BreakoutSection/BreakoutSection.d.ts +30 -0
- package/dist/BreakoutSection/BreakoutSection.d.ts.map +1 -0
- package/dist/BreakoutSection/BreakoutSection.js +27 -0
- package/dist/BreakoutSection/BreakoutSection.js.map +1 -0
- package/dist/BreakoutSection/index.d.ts +3 -0
- package/dist/BreakoutSection/index.d.ts.map +1 -0
- package/dist/BreakoutSection/index.js +2 -0
- package/dist/BreakoutSection/index.js.map +1 -0
- package/dist/Button/Button.css +337 -0
- package/dist/Button/Button.d.ts +90 -0
- package/dist/Button/Button.d.ts.map +1 -0
- package/dist/Button/Button.js +53 -0
- package/dist/Button/Button.js.map +1 -0
- package/dist/Button/index.d.ts +3 -0
- package/dist/Button/index.d.ts.map +1 -0
- package/dist/Button/index.js +2 -0
- package/dist/Button/index.js.map +1 -0
- package/dist/ButtonLink/ButtonLink.css +29 -0
- package/dist/ButtonLink/ButtonLink.d.ts +92 -0
- package/dist/ButtonLink/ButtonLink.d.ts.map +1 -0
- package/dist/ButtonLink/ButtonLink.js +50 -0
- package/dist/ButtonLink/ButtonLink.js.map +1 -0
- package/dist/ButtonLink/index.d.ts +3 -0
- package/dist/ButtonLink/index.d.ts.map +1 -0
- package/dist/ButtonLink/index.js +2 -0
- package/dist/ButtonLink/index.js.map +1 -0
- package/dist/Card/Card.css +169 -0
- package/dist/Card/Card.d.ts +105 -0
- package/dist/Card/Card.d.ts.map +1 -0
- package/dist/Card/Card.js +80 -0
- package/dist/Card/Card.js.map +1 -0
- package/dist/Card/index.d.ts +3 -0
- package/dist/Card/index.d.ts.map +1 -0
- package/dist/Card/index.js +2 -0
- package/dist/Card/index.js.map +1 -0
- package/dist/Checkbox/Checkbox.css +239 -0
- package/dist/Checkbox/Checkbox.d.ts +18 -0
- package/dist/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox/Checkbox.js +24 -0
- package/dist/Checkbox/Checkbox.js.map +1 -0
- package/dist/Checkbox/index.d.ts +3 -0
- package/dist/Checkbox/index.d.ts.map +1 -0
- package/dist/Checkbox/index.js +2 -0
- package/dist/Checkbox/index.js.map +1 -0
- package/dist/CheckboxGroup/CheckboxGroup.css +10 -0
- package/dist/CheckboxGroup/CheckboxGroup.d.ts +37 -0
- package/dist/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/CheckboxGroup/CheckboxGroup.js +37 -0
- package/dist/CheckboxGroup/CheckboxGroup.js.map +1 -0
- package/dist/CheckboxGroup/index.d.ts +3 -0
- package/dist/CheckboxGroup/index.d.ts.map +1 -0
- package/dist/CheckboxGroup/index.js +2 -0
- package/dist/CheckboxGroup/index.js.map +1 -0
- package/dist/CheckboxOption/CheckboxOption.css +17 -0
- package/dist/CheckboxOption/CheckboxOption.d.ts +14 -0
- package/dist/CheckboxOption/CheckboxOption.d.ts.map +1 -0
- package/dist/CheckboxOption/CheckboxOption.js +15 -0
- package/dist/CheckboxOption/CheckboxOption.js.map +1 -0
- package/dist/CheckboxOption/index.d.ts +3 -0
- package/dist/CheckboxOption/index.d.ts.map +1 -0
- package/dist/CheckboxOption/index.js +2 -0
- package/dist/CheckboxOption/index.js.map +1 -0
- package/dist/Container/Container.css +48 -0
- package/dist/Container/Container.d.ts +41 -0
- package/dist/Container/Container.d.ts.map +1 -0
- package/dist/Container/Container.js +33 -0
- package/dist/Container/Container.js.map +1 -0
- package/dist/Container/index.d.ts +3 -0
- package/dist/Container/index.d.ts.map +1 -0
- package/dist/Container/index.js +2 -0
- package/dist/Container/index.js.map +1 -0
- package/dist/DateInput/DateInput.css +37 -0
- package/dist/DateInput/DateInput.d.ts +37 -0
- package/dist/DateInput/DateInput.d.ts.map +1 -0
- package/dist/DateInput/DateInput.js +52 -0
- package/dist/DateInput/DateInput.js.map +1 -0
- package/dist/DateInput/index.d.ts +3 -0
- package/dist/DateInput/index.d.ts.map +1 -0
- package/dist/DateInput/index.js +2 -0
- package/dist/DateInput/index.js.map +1 -0
- package/dist/DateInputGroup/DateInputGroup.css +30 -0
- package/dist/DateInputGroup/DateInputGroup.d.ts +65 -0
- package/dist/DateInputGroup/DateInputGroup.d.ts.map +1 -0
- package/dist/DateInputGroup/DateInputGroup.js +53 -0
- package/dist/DateInputGroup/DateInputGroup.js.map +1 -0
- package/dist/DateInputGroup/index.d.ts +3 -0
- package/dist/DateInputGroup/index.d.ts.map +1 -0
- package/dist/DateInputGroup/index.js +2 -0
- package/dist/DateInputGroup/index.js.map +1 -0
- package/dist/Details/Details.css +134 -0
- package/dist/Details/Details.d.ts +46 -0
- package/dist/Details/Details.d.ts.map +1 -0
- package/dist/Details/Details.js +37 -0
- package/dist/Details/Details.js.map +1 -0
- package/dist/Details/index.d.ts +3 -0
- package/dist/Details/index.d.ts.map +1 -0
- package/dist/Details/index.js +2 -0
- package/dist/Details/index.js.map +1 -0
- package/dist/DotBadge/DotBadge.css +98 -0
- package/dist/DotBadge/DotBadge.d.ts +40 -0
- package/dist/DotBadge/DotBadge.d.ts.map +1 -0
- package/dist/DotBadge/DotBadge.js +33 -0
- package/dist/DotBadge/DotBadge.js.map +1 -0
- package/dist/DotBadge/index.d.ts +2 -0
- package/dist/DotBadge/index.d.ts.map +1 -0
- package/dist/DotBadge/index.js +2 -0
- package/dist/DotBadge/index.js.map +1 -0
- package/dist/Drawer/Drawer.css +258 -0
- package/dist/Drawer/Drawer.d.ts +109 -0
- package/dist/Drawer/Drawer.d.ts.map +1 -0
- package/dist/Drawer/Drawer.js +115 -0
- package/dist/Drawer/Drawer.js.map +1 -0
- package/dist/Drawer/index.d.ts +3 -0
- package/dist/Drawer/index.d.ts.map +1 -0
- package/dist/Drawer/index.js +2 -0
- package/dist/Drawer/index.js.map +1 -0
- package/dist/EmailInput/EmailInput.css +4 -0
- package/dist/EmailInput/EmailInput.d.ts +38 -0
- package/dist/EmailInput/EmailInput.d.ts.map +1 -0
- package/dist/EmailInput/EmailInput.js +27 -0
- package/dist/EmailInput/EmailInput.js.map +1 -0
- package/dist/EmailInput/index.d.ts +3 -0
- package/dist/EmailInput/index.d.ts.map +1 -0
- package/dist/EmailInput/index.js +2 -0
- package/dist/EmailInput/index.js.map +1 -0
- package/dist/File/File.css +206 -0
- package/dist/File/File.d.ts +116 -0
- package/dist/File/File.d.ts.map +1 -0
- package/dist/File/File.js +100 -0
- package/dist/File/File.js.map +1 -0
- package/dist/File/index.d.ts +3 -0
- package/dist/File/index.d.ts.map +1 -0
- package/dist/File/index.js +2 -0
- package/dist/File/index.js.map +1 -0
- package/dist/FileInput/FileInput.css +112 -0
- package/dist/FileInput/FileInput.d.ts +36 -0
- package/dist/FileInput/FileInput.d.ts.map +1 -0
- package/dist/FileInput/FileInput.js +31 -0
- package/dist/FileInput/FileInput.js.map +1 -0
- package/dist/FileInput/index.d.ts +3 -0
- package/dist/FileInput/index.d.ts.map +1 -0
- package/dist/FileInput/index.js +2 -0
- package/dist/FileInput/index.js.map +1 -0
- package/dist/FormField/FormField.css +16 -0
- package/dist/FormField/FormField.d.ts +85 -0
- package/dist/FormField/FormField.d.ts.map +1 -0
- package/dist/FormField/FormField.js +60 -0
- package/dist/FormField/FormField.js.map +1 -0
- package/dist/FormField/index.d.ts +3 -0
- package/dist/FormField/index.d.ts.map +1 -0
- package/dist/FormField/index.js +2 -0
- package/dist/FormField/index.js.map +1 -0
- package/dist/FormFieldDescription/FormFieldDescription.css +25 -0
- package/dist/FormFieldDescription/FormFieldDescription.d.ts +47 -0
- package/dist/FormFieldDescription/FormFieldDescription.d.ts.map +1 -0
- package/dist/FormFieldDescription/FormFieldDescription.js +37 -0
- package/dist/FormFieldDescription/FormFieldDescription.js.map +1 -0
- package/dist/FormFieldDescription/index.d.ts +3 -0
- package/dist/FormFieldDescription/index.d.ts.map +1 -0
- package/dist/FormFieldDescription/index.js +2 -0
- package/dist/FormFieldDescription/index.js.map +1 -0
- package/dist/FormFieldErrorMessage/FormFieldErrorMessage.css +38 -0
- package/dist/FormFieldErrorMessage/FormFieldErrorMessage.d.ts +40 -0
- package/dist/FormFieldErrorMessage/FormFieldErrorMessage.d.ts.map +1 -0
- package/dist/FormFieldErrorMessage/FormFieldErrorMessage.js +32 -0
- package/dist/FormFieldErrorMessage/FormFieldErrorMessage.js.map +1 -0
- package/dist/FormFieldErrorMessage/index.d.ts +3 -0
- package/dist/FormFieldErrorMessage/index.d.ts.map +1 -0
- package/dist/FormFieldErrorMessage/index.js +2 -0
- package/dist/FormFieldErrorMessage/index.js.map +1 -0
- package/dist/FormFieldLabel/FormFieldLabel.css +48 -0
- package/dist/FormFieldLabel/FormFieldLabel.d.ts +38 -0
- package/dist/FormFieldLabel/FormFieldLabel.d.ts.map +1 -0
- package/dist/FormFieldLabel/FormFieldLabel.js +30 -0
- package/dist/FormFieldLabel/FormFieldLabel.js.map +1 -0
- package/dist/FormFieldLabel/index.d.ts +3 -0
- package/dist/FormFieldLabel/index.d.ts.map +1 -0
- package/dist/FormFieldLabel/index.js +2 -0
- package/dist/FormFieldLabel/index.js.map +1 -0
- package/dist/FormFieldLegend/FormFieldLegend.css +7 -0
- package/dist/FormFieldLegend/FormFieldLegend.d.ts +39 -0
- package/dist/FormFieldLegend/FormFieldLegend.d.ts.map +1 -0
- package/dist/FormFieldLegend/FormFieldLegend.js +31 -0
- package/dist/FormFieldLegend/FormFieldLegend.js.map +1 -0
- package/dist/FormFieldLegend/index.d.ts +2 -0
- package/dist/FormFieldLegend/index.d.ts.map +1 -0
- package/dist/FormFieldLegend/index.js +2 -0
- package/dist/FormFieldLegend/index.js.map +1 -0
- package/dist/FormFieldStatus/FormFieldStatus.css +66 -0
- package/dist/FormFieldStatus/FormFieldStatus.d.ts +52 -0
- package/dist/FormFieldStatus/FormFieldStatus.d.ts.map +1 -0
- package/dist/FormFieldStatus/FormFieldStatus.js +44 -0
- package/dist/FormFieldStatus/FormFieldStatus.js.map +1 -0
- package/dist/FormFieldStatus/index.d.ts +3 -0
- package/dist/FormFieldStatus/index.d.ts.map +1 -0
- package/dist/FormFieldStatus/index.js +2 -0
- package/dist/FormFieldStatus/index.js.map +1 -0
- package/dist/FormFieldset/FormFieldset.css +24 -0
- package/dist/FormFieldset/FormFieldset.d.ts +83 -0
- package/dist/FormFieldset/FormFieldset.d.ts.map +1 -0
- package/dist/FormFieldset/FormFieldset.js +59 -0
- package/dist/FormFieldset/FormFieldset.js.map +1 -0
- package/dist/FormFieldset/index.d.ts +2 -0
- package/dist/FormFieldset/index.d.ts.map +1 -0
- package/dist/FormFieldset/index.js +2 -0
- package/dist/FormFieldset/index.js.map +1 -0
- package/dist/Grid/Grid.css +573 -0
- package/dist/Grid/Grid.d.ts +35 -0
- package/dist/Grid/Grid.d.ts.map +1 -0
- package/dist/Grid/Grid.js +29 -0
- package/dist/Grid/Grid.js.map +1 -0
- package/dist/Grid/GridItem.d.ts +84 -0
- package/dist/Grid/GridItem.d.ts.map +1 -0
- package/dist/Grid/GridItem.js +39 -0
- package/dist/Grid/GridItem.js.map +1 -0
- package/dist/Grid/index.d.ts +5 -0
- package/dist/Grid/index.d.ts.map +1 -0
- package/dist/Grid/index.js +3 -0
- package/dist/Grid/index.js.map +1 -0
- package/dist/Heading/Heading.css +81 -0
- package/dist/Heading/Heading.d.ts +38 -0
- package/dist/Heading/Heading.d.ts.map +1 -0
- package/dist/Heading/Heading.js +24 -0
- package/dist/Heading/Heading.js.map +1 -0
- package/dist/Heading/index.d.ts +3 -0
- package/dist/Heading/index.d.ts.map +1 -0
- package/dist/Heading/index.js +2 -0
- package/dist/Heading/index.js.map +1 -0
- package/dist/Hero/Hero.css +205 -0
- package/dist/Hero/Hero.d.ts +45 -0
- package/dist/Hero/Hero.d.ts.map +1 -0
- package/dist/Hero/Hero.js +33 -0
- package/dist/Hero/Hero.js.map +1 -0
- package/dist/Hero/index.d.ts +3 -0
- package/dist/Hero/index.d.ts.map +1 -0
- package/dist/Hero/index.js +2 -0
- package/dist/Hero/index.js.map +1 -0
- package/dist/Icon/Icon.css +57 -0
- package/dist/Icon/Icon.d.ts +48 -0
- package/dist/Icon/Icon.d.ts.map +1 -0
- package/dist/Icon/Icon.js +42 -0
- package/dist/Icon/Icon.js.map +1 -0
- package/dist/Icon/icon-registry.generated.d.ts +4 -0
- package/dist/Icon/icon-registry.generated.d.ts.map +1 -0
- package/dist/Icon/icon-registry.generated.js +105 -0
- package/dist/Icon/icon-registry.generated.js.map +1 -0
- package/dist/Icon/index.d.ts +3 -0
- package/dist/Icon/index.d.ts.map +1 -0
- package/dist/Icon/index.js +2 -0
- package/dist/Icon/index.js.map +1 -0
- package/dist/Image/Image.css +123 -0
- package/dist/Image/Image.d.ts +54 -0
- package/dist/Image/Image.d.ts.map +1 -0
- package/dist/Image/Image.js +53 -0
- package/dist/Image/Image.js.map +1 -0
- package/dist/Image/index.d.ts +3 -0
- package/dist/Image/index.d.ts.map +1 -0
- package/dist/Image/index.js +2 -0
- package/dist/Image/index.js.map +1 -0
- package/dist/Link/Link.css +113 -0
- package/dist/Link/Link.d.ts +80 -0
- package/dist/Link/Link.d.ts.map +1 -0
- package/dist/Link/Link.js +58 -0
- package/dist/Link/Link.js.map +1 -0
- package/dist/Link/index.d.ts +3 -0
- package/dist/Link/index.d.ts.map +1 -0
- package/dist/Link/index.js +2 -0
- package/dist/Link/index.js.map +1 -0
- package/dist/LinkButton/LinkButton.css +40 -0
- package/dist/LinkButton/LinkButton.d.ts +52 -0
- package/dist/LinkButton/LinkButton.d.ts.map +1 -0
- package/dist/LinkButton/LinkButton.js +34 -0
- package/dist/LinkButton/LinkButton.js.map +1 -0
- package/dist/LinkButton/index.d.ts +3 -0
- package/dist/LinkButton/index.d.ts.map +1 -0
- package/dist/LinkButton/index.js +2 -0
- package/dist/LinkButton/index.js.map +1 -0
- package/dist/Logo/Logo.css +33 -0
- package/dist/Logo/Logo.d.ts +33 -0
- package/dist/Logo/Logo.d.ts.map +1 -0
- package/dist/Logo/Logo.js +32 -0
- package/dist/Logo/Logo.js.map +1 -0
- package/dist/Logo/index.d.ts +2 -0
- package/dist/Logo/index.d.ts.map +1 -0
- package/dist/Logo/index.js +2 -0
- package/dist/Logo/index.js.map +1 -0
- package/dist/Menu/Menu.css +57 -0
- package/dist/Menu/Menu.d.ts +56 -0
- package/dist/Menu/Menu.d.ts.map +1 -0
- package/dist/Menu/Menu.js +38 -0
- package/dist/Menu/Menu.js.map +1 -0
- package/dist/Menu/index.d.ts +2 -0
- package/dist/Menu/index.d.ts.map +1 -0
- package/dist/Menu/index.js +2 -0
- package/dist/Menu/index.js.map +1 -0
- package/dist/MenuButton/MenuButton.css +106 -0
- package/dist/MenuButton/MenuButton.d.ts +54 -0
- package/dist/MenuButton/MenuButton.d.ts.map +1 -0
- package/dist/MenuButton/MenuButton.js +37 -0
- package/dist/MenuButton/MenuButton.js.map +1 -0
- package/dist/MenuButton/index.d.ts +2 -0
- package/dist/MenuButton/index.d.ts.map +1 -0
- package/dist/MenuButton/index.js +2 -0
- package/dist/MenuButton/index.js.map +1 -0
- package/dist/MenuLink/MenuLink.css +212 -0
- package/dist/MenuLink/MenuLink.d.ts +96 -0
- package/dist/MenuLink/MenuLink.d.ts.map +1 -0
- package/dist/MenuLink/MenuLink.js +50 -0
- package/dist/MenuLink/MenuLink.js.map +1 -0
- package/dist/MenuLink/index.d.ts +2 -0
- package/dist/MenuLink/index.d.ts.map +1 -0
- package/dist/MenuLink/index.js +2 -0
- package/dist/MenuLink/index.js.map +1 -0
- package/dist/ModalDialog/ModalDialog.css +199 -0
- package/dist/ModalDialog/ModalDialog.d.ts +95 -0
- package/dist/ModalDialog/ModalDialog.d.ts.map +1 -0
- package/dist/ModalDialog/ModalDialog.js +93 -0
- package/dist/ModalDialog/ModalDialog.js.map +1 -0
- package/dist/ModalDialog/index.d.ts +3 -0
- package/dist/ModalDialog/index.d.ts.map +1 -0
- package/dist/ModalDialog/index.js +2 -0
- package/dist/ModalDialog/index.js.map +1 -0
- package/dist/Note/Note.css +169 -0
- package/dist/Note/Note.d.ts +78 -0
- package/dist/Note/Note.d.ts.map +1 -0
- package/dist/Note/Note.js +68 -0
- package/dist/Note/Note.js.map +1 -0
- package/dist/Note/index.d.ts +3 -0
- package/dist/Note/index.d.ts.map +1 -0
- package/dist/Note/index.js +2 -0
- package/dist/Note/index.js.map +1 -0
- package/dist/NumberBadge/NumberBadge.css +83 -0
- package/dist/NumberBadge/NumberBadge.d.ts +42 -0
- package/dist/NumberBadge/NumberBadge.d.ts.map +1 -0
- package/dist/NumberBadge/NumberBadge.js +46 -0
- package/dist/NumberBadge/NumberBadge.js.map +1 -0
- package/dist/NumberBadge/index.d.ts +2 -0
- package/dist/NumberBadge/index.d.ts.map +1 -0
- package/dist/NumberBadge/index.js +2 -0
- package/dist/NumberBadge/index.js.map +1 -0
- package/dist/NumberInput/NumberInput.css +4 -0
- package/dist/NumberInput/NumberInput.d.ts +45 -0
- package/dist/NumberInput/NumberInput.d.ts.map +1 -0
- package/dist/NumberInput/NumberInput.js +27 -0
- package/dist/NumberInput/NumberInput.js.map +1 -0
- package/dist/NumberInput/index.d.ts +3 -0
- package/dist/NumberInput/index.d.ts.map +1 -0
- package/dist/NumberInput/index.js +2 -0
- package/dist/NumberInput/index.js.map +1 -0
- package/dist/OptionLabel/OptionLabel.css +18 -0
- package/dist/OptionLabel/OptionLabel.d.ts +13 -0
- package/dist/OptionLabel/OptionLabel.d.ts.map +1 -0
- package/dist/OptionLabel/OptionLabel.js +13 -0
- package/dist/OptionLabel/OptionLabel.js.map +1 -0
- package/dist/OptionLabel/index.d.ts +3 -0
- package/dist/OptionLabel/index.d.ts.map +1 -0
- package/dist/OptionLabel/index.js +2 -0
- package/dist/OptionLabel/index.js.map +1 -0
- package/dist/OrderedList/OrderedList.css +37 -0
- package/dist/OrderedList/OrderedList.d.ts +32 -0
- package/dist/OrderedList/OrderedList.d.ts.map +1 -0
- package/dist/OrderedList/OrderedList.js +28 -0
- package/dist/OrderedList/OrderedList.js.map +1 -0
- package/dist/OrderedList/index.d.ts +3 -0
- package/dist/OrderedList/index.d.ts.map +1 -0
- package/dist/OrderedList/index.js +2 -0
- package/dist/OrderedList/index.js.map +1 -0
- package/dist/PageBody/PageBody.css +69 -0
- package/dist/PageBody/PageBody.d.ts +33 -0
- package/dist/PageBody/PageBody.d.ts.map +1 -0
- package/dist/PageBody/PageBody.js +28 -0
- package/dist/PageBody/PageBody.js.map +1 -0
- package/dist/PageBody/index.d.ts +2 -0
- package/dist/PageBody/index.d.ts.map +1 -0
- package/dist/PageBody/index.js +2 -0
- package/dist/PageBody/index.js.map +1 -0
- package/dist/PageFooter/PageFooter.css +102 -0
- package/dist/PageFooter/PageFooter.d.ts +55 -0
- package/dist/PageFooter/PageFooter.d.ts.map +1 -0
- package/dist/PageFooter/PageFooter.js +45 -0
- package/dist/PageFooter/PageFooter.js.map +1 -0
- package/dist/PageFooter/index.d.ts +2 -0
- package/dist/PageFooter/index.d.ts.map +1 -0
- package/dist/PageFooter/index.js +2 -0
- package/dist/PageFooter/index.js.map +1 -0
- package/dist/PageHeader/PageHeader.css +517 -0
- package/dist/PageHeader/PageHeader.d.ts +190 -0
- package/dist/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/PageHeader/PageHeader.js +115 -0
- package/dist/PageHeader/PageHeader.js.map +1 -0
- package/dist/PageHeader/index.d.ts +2 -0
- package/dist/PageHeader/index.d.ts.map +1 -0
- package/dist/PageHeader/index.js +2 -0
- package/dist/PageHeader/index.js.map +1 -0
- package/dist/PageLayout/PageLayout.css +6 -0
- package/dist/PageLayout/PageLayout.d.ts +38 -0
- package/dist/PageLayout/PageLayout.d.ts.map +1 -0
- package/dist/PageLayout/PageLayout.js +33 -0
- package/dist/PageLayout/PageLayout.js.map +1 -0
- package/dist/PageLayout/index.d.ts +2 -0
- package/dist/PageLayout/index.d.ts.map +1 -0
- package/dist/PageLayout/index.js +2 -0
- package/dist/PageLayout/index.js.map +1 -0
- package/dist/Paragraph/Paragraph.css +38 -0
- package/dist/Paragraph/Paragraph.d.ts +35 -0
- package/dist/Paragraph/Paragraph.d.ts.map +1 -0
- package/dist/Paragraph/Paragraph.js +25 -0
- package/dist/Paragraph/Paragraph.js.map +1 -0
- package/dist/Paragraph/index.d.ts +3 -0
- package/dist/Paragraph/index.d.ts.map +1 -0
- package/dist/Paragraph/index.js +2 -0
- package/dist/Paragraph/index.js.map +1 -0
- package/dist/PasswordInput/PasswordInput.css +4 -0
- package/dist/PasswordInput/PasswordInput.d.ts +52 -0
- package/dist/PasswordInput/PasswordInput.d.ts.map +1 -0
- package/dist/PasswordInput/PasswordInput.js +32 -0
- package/dist/PasswordInput/PasswordInput.js.map +1 -0
- package/dist/PasswordInput/index.d.ts +3 -0
- package/dist/PasswordInput/index.d.ts.map +1 -0
- package/dist/PasswordInput/index.js +2 -0
- package/dist/PasswordInput/index.js.map +1 -0
- package/dist/Popover/Popover.css +233 -0
- package/dist/Popover/Popover.d.ts +117 -0
- package/dist/Popover/Popover.d.ts.map +1 -0
- package/dist/Popover/Popover.js +219 -0
- package/dist/Popover/Popover.js.map +1 -0
- package/dist/Popover/index.d.ts +3 -0
- package/dist/Popover/index.d.ts.map +1 -0
- package/dist/Popover/index.js +2 -0
- package/dist/Popover/index.js.map +1 -0
- package/dist/ProgressBar/ProgressBar.css +91 -0
- package/dist/ProgressBar/ProgressBar.d.ts +53 -0
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/dist/ProgressBar/ProgressBar.js +36 -0
- package/dist/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/ProgressBar/index.d.ts +2 -0
- package/dist/ProgressBar/index.d.ts.map +1 -0
- package/dist/ProgressBar/index.js +2 -0
- package/dist/ProgressBar/index.js.map +1 -0
- package/dist/Radio/Radio.css +169 -0
- package/dist/Radio/Radio.d.ts +14 -0
- package/dist/Radio/Radio.d.ts.map +1 -0
- package/dist/Radio/Radio.js +14 -0
- package/dist/Radio/Radio.js.map +1 -0
- package/dist/Radio/index.d.ts +3 -0
- package/dist/Radio/index.d.ts.map +1 -0
- package/dist/Radio/index.js +2 -0
- package/dist/Radio/index.js.map +1 -0
- package/dist/RadioGroup/RadioGroup.css +10 -0
- package/dist/RadioGroup/RadioGroup.d.ts +37 -0
- package/dist/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/RadioGroup/RadioGroup.js +37 -0
- package/dist/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/RadioGroup/index.d.ts +3 -0
- package/dist/RadioGroup/index.d.ts.map +1 -0
- package/dist/RadioGroup/index.js +2 -0
- package/dist/RadioGroup/index.js.map +1 -0
- package/dist/RadioOption/RadioOption.css +17 -0
- package/dist/RadioOption/RadioOption.d.ts +14 -0
- package/dist/RadioOption/RadioOption.d.ts.map +1 -0
- package/dist/RadioOption/RadioOption.js +15 -0
- package/dist/RadioOption/RadioOption.js.map +1 -0
- package/dist/RadioOption/index.d.ts +3 -0
- package/dist/RadioOption/index.d.ts.map +1 -0
- package/dist/RadioOption/index.js +2 -0
- package/dist/RadioOption/index.js.map +1 -0
- package/dist/SearchInput/SearchInput.css +59 -0
- package/dist/SearchInput/SearchInput.d.ts +40 -0
- package/dist/SearchInput/SearchInput.d.ts.map +1 -0
- package/dist/SearchInput/SearchInput.js +31 -0
- package/dist/SearchInput/SearchInput.js.map +1 -0
- package/dist/SearchInput/index.d.ts +3 -0
- package/dist/SearchInput/index.d.ts.map +1 -0
- package/dist/SearchInput/index.js +2 -0
- package/dist/SearchInput/index.js.map +1 -0
- package/dist/Select/Select.css +86 -0
- package/dist/Select/Select.d.ts +52 -0
- package/dist/Select/Select.d.ts.map +1 -0
- package/dist/Select/Select.js +43 -0
- package/dist/Select/Select.js.map +1 -0
- package/dist/Select/index.d.ts +3 -0
- package/dist/Select/index.d.ts.map +1 -0
- package/dist/Select/index.js +2 -0
- package/dist/Select/index.js.map +1 -0
- package/dist/SkipLink/SkipLink.css +58 -0
- package/dist/SkipLink/SkipLink.d.ts +35 -0
- package/dist/SkipLink/SkipLink.d.ts.map +1 -0
- package/dist/SkipLink/SkipLink.js +23 -0
- package/dist/SkipLink/SkipLink.js.map +1 -0
- package/dist/SkipLink/index.d.ts +2 -0
- package/dist/SkipLink/index.d.ts.map +1 -0
- package/dist/SkipLink/index.js +2 -0
- package/dist/SkipLink/index.js.map +1 -0
- package/dist/Spinner/Spinner.css +101 -0
- package/dist/Spinner/Spinner.d.ts +43 -0
- package/dist/Spinner/Spinner.d.ts.map +1 -0
- package/dist/Spinner/Spinner.js +30 -0
- package/dist/Spinner/Spinner.js.map +1 -0
- package/dist/Spinner/index.d.ts +2 -0
- package/dist/Spinner/index.d.ts.map +1 -0
- package/dist/Spinner/index.js +2 -0
- package/dist/Spinner/index.js.map +1 -0
- package/dist/Stack/Stack.css +59 -0
- package/dist/Stack/Stack.d.ts +35 -0
- package/dist/Stack/Stack.d.ts.map +1 -0
- package/dist/Stack/Stack.js +29 -0
- package/dist/Stack/Stack.js.map +1 -0
- package/dist/Stack/index.d.ts +3 -0
- package/dist/Stack/index.d.ts.map +1 -0
- package/dist/Stack/index.js +2 -0
- package/dist/Stack/index.js.map +1 -0
- package/dist/StatusBadge/StatusBadge.css +87 -0
- package/dist/StatusBadge/StatusBadge.d.ts +50 -0
- package/dist/StatusBadge/StatusBadge.d.ts.map +1 -0
- package/dist/StatusBadge/StatusBadge.js +40 -0
- package/dist/StatusBadge/StatusBadge.js.map +1 -0
- package/dist/StatusBadge/index.d.ts +2 -0
- package/dist/StatusBadge/index.d.ts.map +1 -0
- package/dist/StatusBadge/index.js +2 -0
- package/dist/StatusBadge/index.js.map +1 -0
- package/dist/SummaryList/SummaryList.css +151 -0
- package/dist/SummaryList/SummaryList.d.ts +49 -0
- package/dist/SummaryList/SummaryList.d.ts.map +1 -0
- package/dist/SummaryList/SummaryList.js +31 -0
- package/dist/SummaryList/SummaryList.js.map +1 -0
- package/dist/SummaryList/index.d.ts +3 -0
- package/dist/SummaryList/index.d.ts.map +1 -0
- package/dist/SummaryList/index.js +2 -0
- package/dist/SummaryList/index.js.map +1 -0
- package/dist/Table/Table.css +243 -0
- package/dist/Table/Table.d.ts +61 -0
- package/dist/Table/Table.d.ts.map +1 -0
- package/dist/Table/Table.js +37 -0
- package/dist/Table/Table.js.map +1 -0
- package/dist/Table/index.d.ts +3 -0
- package/dist/Table/index.d.ts.map +1 -0
- package/dist/Table/index.js +2 -0
- package/dist/Table/index.js.map +1 -0
- package/dist/TelephoneInput/TelephoneInput.css +4 -0
- package/dist/TelephoneInput/TelephoneInput.d.ts +38 -0
- package/dist/TelephoneInput/TelephoneInput.d.ts.map +1 -0
- package/dist/TelephoneInput/TelephoneInput.js +27 -0
- package/dist/TelephoneInput/TelephoneInput.js.map +1 -0
- package/dist/TelephoneInput/index.d.ts +3 -0
- package/dist/TelephoneInput/index.d.ts.map +1 -0
- package/dist/TelephoneInput/index.js +2 -0
- package/dist/TelephoneInput/index.js.map +1 -0
- package/dist/TextArea/TextArea.css +126 -0
- package/dist/TextArea/TextArea.d.ts +44 -0
- package/dist/TextArea/TextArea.d.ts.map +1 -0
- package/dist/TextArea/TextArea.js +33 -0
- package/dist/TextArea/TextArea.js.map +1 -0
- package/dist/TextArea/index.d.ts +3 -0
- package/dist/TextArea/index.d.ts.map +1 -0
- package/dist/TextArea/index.js +2 -0
- package/dist/TextArea/index.js.map +1 -0
- package/dist/TextInput/TextInput.css +122 -0
- package/dist/TextInput/TextInput.d.ts +44 -0
- package/dist/TextInput/TextInput.d.ts.map +1 -0
- package/dist/TextInput/TextInput.js +33 -0
- package/dist/TextInput/TextInput.js.map +1 -0
- package/dist/TextInput/index.d.ts +3 -0
- package/dist/TextInput/index.d.ts.map +1 -0
- package/dist/TextInput/index.js +2 -0
- package/dist/TextInput/index.js.map +1 -0
- package/dist/TimeInput/TimeInput.css +37 -0
- package/dist/TimeInput/TimeInput.d.ts +37 -0
- package/dist/TimeInput/TimeInput.d.ts.map +1 -0
- package/dist/TimeInput/TimeInput.js +52 -0
- package/dist/TimeInput/TimeInput.js.map +1 -0
- package/dist/TimeInput/index.d.ts +3 -0
- package/dist/TimeInput/index.d.ts.map +1 -0
- package/dist/TimeInput/index.js +2 -0
- package/dist/TimeInput/index.js.map +1 -0
- package/dist/UnorderedList/UnorderedList.css +38 -0
- package/dist/UnorderedList/UnorderedList.d.ts +26 -0
- package/dist/UnorderedList/UnorderedList.d.ts.map +1 -0
- package/dist/UnorderedList/UnorderedList.js +22 -0
- package/dist/UnorderedList/UnorderedList.js.map +1 -0
- package/dist/UnorderedList/index.d.ts +3 -0
- package/dist/UnorderedList/index.d.ts.map +1 -0
- package/dist/UnorderedList/index.js +2 -0
- package/dist/UnorderedList/index.js.map +1 -0
- package/dist/index.css +7036 -0
- package/dist/index.d.ts +76 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DotBadge Component
|
|
3
|
+
* Kleine gekleurde stip die bij een Button of Link wordt geplaatst om
|
|
4
|
+
* zonder label of getal de aandacht te trekken bij een statuswijziging.
|
|
5
|
+
*
|
|
6
|
+
* Altijd aria-hidden="true" — context via dsn-visually-hidden in de parent.
|
|
7
|
+
* Parent-wrapper heeft position: relative nodig.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* <!-- Basis dot (negative, meest gebruikt) -->
|
|
11
|
+
* <span class="dsn-dot-badge dsn-dot-badge--negative" aria-hidden="true"></span>
|
|
12
|
+
*
|
|
13
|
+
* <!-- Met pulse-effect voor urgente statuswijzigingen -->
|
|
14
|
+
* <span class="dsn-dot-badge dsn-dot-badge--negative dsn-dot-badge--pulse" aria-hidden="true"></span>
|
|
15
|
+
*
|
|
16
|
+
* <!-- Positive variant -->
|
|
17
|
+
* <span class="dsn-dot-badge dsn-dot-badge--positive" aria-hidden="true"></span>
|
|
18
|
+
*
|
|
19
|
+
* <!-- Info variant -->
|
|
20
|
+
* <span class="dsn-dot-badge dsn-dot-badge--info" aria-hidden="true"></span>
|
|
21
|
+
*
|
|
22
|
+
* <!-- Warning variant -->
|
|
23
|
+
* <span class="dsn-dot-badge dsn-dot-badge--warning" aria-hidden="true"></span>
|
|
24
|
+
*
|
|
25
|
+
* <!-- Neutral variant -->
|
|
26
|
+
* <span class="dsn-dot-badge dsn-dot-badge--neutral" aria-hidden="true"></span>
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
.dsn-dot-badge {
|
|
30
|
+
display: block;
|
|
31
|
+
position: absolute;
|
|
32
|
+
inline-size: var(--dsn-dot-badge-size);
|
|
33
|
+
block-size: var(--dsn-dot-badge-size);
|
|
34
|
+
border-radius: 50%;
|
|
35
|
+
background-color: var(--dsn-dot-badge-color);
|
|
36
|
+
inset-block-start: var(--dsn-dot-badge-inset-block-start);
|
|
37
|
+
inset-inline-end: var(--dsn-dot-badge-inset-inline-end);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Variant kleuren — inverse-bg-default: de gevulde dot is een achtergrond-element,
|
|
41
|
+
geen tekst. inverse-bg-default is de vivid kleur die zowel op lichte als donkere
|
|
42
|
+
achtergronden leesbaar is als dot. In een inverse context (zie page-header.css)
|
|
43
|
+
wordt overgeschakeld naar bg-default (lichte pastelkleur) voor hoog contrast op
|
|
44
|
+
donkere achtergronden. */
|
|
45
|
+
.dsn-dot-badge--negative {
|
|
46
|
+
--dsn-dot-badge-color: var(--dsn-color-negative-inverse-bg-default);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.dsn-dot-badge--positive {
|
|
50
|
+
--dsn-dot-badge-color: var(--dsn-color-positive-inverse-bg-default);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.dsn-dot-badge--warning {
|
|
54
|
+
--dsn-dot-badge-color: var(--dsn-color-warning-inverse-bg-default);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.dsn-dot-badge--info {
|
|
58
|
+
--dsn-dot-badge-color: var(--dsn-color-info-inverse-bg-default);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.dsn-dot-badge--neutral {
|
|
62
|
+
--dsn-dot-badge-color: var(--dsn-color-neutral-inverse-bg-default);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Pulse-effect via ::before pseudo-element — geen extra DOM-nodes nodig */
|
|
66
|
+
.dsn-dot-badge--pulse::before {
|
|
67
|
+
content: '';
|
|
68
|
+
display: block;
|
|
69
|
+
position: absolute;
|
|
70
|
+
inset: 0;
|
|
71
|
+
border-radius: 50%;
|
|
72
|
+
background-color: var(--dsn-dot-badge-color);
|
|
73
|
+
animation: dsn-dot-badge-pulse var(--dsn-dot-badge-pulse-duration)
|
|
74
|
+
var(--dsn-dot-badge-pulse-easing) infinite;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@keyframes dsn-dot-badge-pulse {
|
|
78
|
+
0% {
|
|
79
|
+
transform: scale(1);
|
|
80
|
+
opacity: 0.8;
|
|
81
|
+
}
|
|
82
|
+
70% {
|
|
83
|
+
transform: scale(2.5);
|
|
84
|
+
opacity: 0;
|
|
85
|
+
}
|
|
86
|
+
100% {
|
|
87
|
+
transform: scale(2.5);
|
|
88
|
+
opacity: 0;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Animatie respecteert prefers-reduced-motion — dot blijft zichtbaar */
|
|
93
|
+
@media (prefers-reduced-motion: reduce) {
|
|
94
|
+
.dsn-dot-badge--pulse::before {
|
|
95
|
+
animation: none;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './DotBadge.css';
|
|
3
|
+
export type DotBadgeVariant = 'negative' | 'positive' | 'warning' | 'info' | 'neutral';
|
|
4
|
+
export interface DotBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Signaalkleur van de stip
|
|
7
|
+
* @default 'negative'
|
|
8
|
+
*/
|
|
9
|
+
variant?: DotBadgeVariant;
|
|
10
|
+
/**
|
|
11
|
+
* Voegt een pulserend ring-effect toe om extra aandacht te trekken
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
pulse?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* DotBadge component
|
|
18
|
+
* Kleine gekleurde stip die bij een Button of Link wordt geplaatst om
|
|
19
|
+
* zonder label of getal de aandacht te trekken bij een statuswijziging.
|
|
20
|
+
*
|
|
21
|
+
* Altijd aria-hidden="true" — context via dsn-visually-hidden in de parent.
|
|
22
|
+
* Parent-wrapper heeft position: relative nodig.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* // Basis gebruik — negatieve dot bij een icon-only Button
|
|
27
|
+
* <div style={{ position: 'relative', display: 'inline-flex' }}>
|
|
28
|
+
* <Button variant="subtle" iconOnly iconStart={<Icon name="inbox" aria-hidden />}>
|
|
29
|
+
* Inbox
|
|
30
|
+
* <span className="dsn-visually-hidden">, 3 ongelezen berichten</span>
|
|
31
|
+
* </Button>
|
|
32
|
+
* <DotBadge variant="negative" />
|
|
33
|
+
* </div>
|
|
34
|
+
*
|
|
35
|
+
* // Met pulse-effect voor urgente statuswijzigingen
|
|
36
|
+
* <DotBadge variant="negative" pulse />
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const DotBadge: React.ForwardRefExoticComponent<DotBadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
40
|
+
//# sourceMappingURL=DotBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotBadge.d.ts","sourceRoot":"","sources":["../../src/DotBadge/DotBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,CAAC;AAExB,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,UAAU,GACV,SAAS,GACT,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC1E;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,uFAWpB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { classNames } from '@dsn-starter-kit/core';
|
|
4
|
+
import './DotBadge.css';
|
|
5
|
+
/**
|
|
6
|
+
* DotBadge component
|
|
7
|
+
* Kleine gekleurde stip die bij een Button of Link wordt geplaatst om
|
|
8
|
+
* zonder label of getal de aandacht te trekken bij een statuswijziging.
|
|
9
|
+
*
|
|
10
|
+
* Altijd aria-hidden="true" — context via dsn-visually-hidden in de parent.
|
|
11
|
+
* Parent-wrapper heeft position: relative nodig.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* // Basis gebruik — negatieve dot bij een icon-only Button
|
|
16
|
+
* <div style={{ position: 'relative', display: 'inline-flex' }}>
|
|
17
|
+
* <Button variant="subtle" iconOnly iconStart={<Icon name="inbox" aria-hidden />}>
|
|
18
|
+
* Inbox
|
|
19
|
+
* <span className="dsn-visually-hidden">, 3 ongelezen berichten</span>
|
|
20
|
+
* </Button>
|
|
21
|
+
* <DotBadge variant="negative" />
|
|
22
|
+
* </div>
|
|
23
|
+
*
|
|
24
|
+
* // Met pulse-effect voor urgente statuswijzigingen
|
|
25
|
+
* <DotBadge variant="negative" pulse />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export const DotBadge = React.forwardRef(({ className, variant = 'negative', pulse = false, ...props }, ref) => {
|
|
29
|
+
const classes = classNames('dsn-dot-badge', `dsn-dot-badge--${variant}`, pulse && 'dsn-dot-badge--pulse', className);
|
|
30
|
+
return _jsx("span", { ref: ref, className: classes, "aria-hidden": "true", ...props });
|
|
31
|
+
});
|
|
32
|
+
DotBadge.displayName = 'DotBadge';
|
|
33
|
+
//# sourceMappingURL=DotBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotBadge.js","sourceRoot":"","sources":["../../src/DotBadge/DotBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,gBAAgB,CAAC;AAuBxB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CACtC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,UAAU,CACxB,eAAe,EACf,kBAAkB,OAAO,EAAE,EAC3B,KAAK,IAAI,sBAAsB,EAC/B,SAAS,CACV,CAAC;IAEF,OAAO,eAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,iBAAc,MAAM,KAAK,KAAK,GAAI,CAAC;AAC9E,CAAC,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/DotBadge/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DotBadge/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/* ===== Drawer ===== */
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* dsn-drawer — Zijpaneel dat vanuit links of rechts de viewport inschuift
|
|
5
|
+
*
|
|
6
|
+
* Gebaseerd op het native <dialog> element.
|
|
7
|
+
* Modaal (modal prop): openen via .showModal() — natieve focus-trap + ::backdrop.
|
|
8
|
+
* Non-modaal: openen via .show() — achtergrond blijft interactief.
|
|
9
|
+
*
|
|
10
|
+
* HTML-structuur:
|
|
11
|
+
*
|
|
12
|
+
* <dialog class="dsn-drawer dsn-drawer--side-right" aria-labelledby="drawer-title">
|
|
13
|
+
* <div class="dsn-drawer__header">
|
|
14
|
+
* <h2 class="dsn-drawer-heading" id="drawer-title">Titel</h2>
|
|
15
|
+
* <button type="button" class="dsn-button dsn-button--subtle dsn-button--size-small dsn-button--icon-only">
|
|
16
|
+
* <svg class="dsn-icon" aria-hidden="true"><!-- x --></svg>
|
|
17
|
+
* <span class="dsn-button__label">Sluiten</span>
|
|
18
|
+
* </button>
|
|
19
|
+
* </div>
|
|
20
|
+
* <div class="dsn-drawer__body">
|
|
21
|
+
* <!-- inhoud -->
|
|
22
|
+
* </div>
|
|
23
|
+
* <div class="dsn-drawer__footer">
|
|
24
|
+
* <div class="dsn-action-group">
|
|
25
|
+
* <!-- knoppen -->
|
|
26
|
+
* </div>
|
|
27
|
+
* </div>
|
|
28
|
+
* </dialog>
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
.dsn-drawer {
|
|
32
|
+
/* Reset native <dialog> styling */
|
|
33
|
+
border: none;
|
|
34
|
+
box-shadow: var(--dsn-drawer-box-shadow);
|
|
35
|
+
background: var(--dsn-drawer-background-color);
|
|
36
|
+
padding: 0;
|
|
37
|
+
|
|
38
|
+
/* Grootte */
|
|
39
|
+
inline-size: min(
|
|
40
|
+
var(--dsn-drawer-max-width),
|
|
41
|
+
calc(100svw - var(--dsn-drawer-min-gap))
|
|
42
|
+
);
|
|
43
|
+
block-size: 100svh;
|
|
44
|
+
max-block-size: 100svh;
|
|
45
|
+
|
|
46
|
+
/* Positionering — override UA's auto-centrering voor zowel modal als non-modal */
|
|
47
|
+
position: fixed;
|
|
48
|
+
inset-block: 0;
|
|
49
|
+
margin-block: 0;
|
|
50
|
+
|
|
51
|
+
/* Altijd flex-direction column, ook tijdens sluitanimatie */
|
|
52
|
+
flex-direction: column;
|
|
53
|
+
|
|
54
|
+
/* Animatietransitie (ook voor sluitanimatie) */
|
|
55
|
+
opacity: 1;
|
|
56
|
+
transform: translateX(0);
|
|
57
|
+
transition:
|
|
58
|
+
opacity var(--dsn-transition-duration-normal)
|
|
59
|
+
var(--dsn-transition-easing-default),
|
|
60
|
+
transform var(--dsn-transition-duration-normal)
|
|
61
|
+
var(--dsn-transition-easing-default),
|
|
62
|
+
display var(--dsn-transition-duration-normal)
|
|
63
|
+
var(--dsn-transition-easing-default) allow-discrete,
|
|
64
|
+
overlay var(--dsn-transition-duration-normal)
|
|
65
|
+
var(--dsn-transition-easing-default) allow-discrete;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/*
|
|
69
|
+
* Flexbox layout alleen bij open staat.
|
|
70
|
+
* Gebruik [open] zodat de UA-stylesheet's display:none van kracht blijft
|
|
71
|
+
* wanneer de drawer gesloten is — anders overschrijft display:flex de UA.
|
|
72
|
+
*/
|
|
73
|
+
.dsn-drawer[open] {
|
|
74
|
+
display: flex;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Animatie uitschakelen bij prefers-reduced-motion */
|
|
78
|
+
@media (prefers-reduced-motion: reduce) {
|
|
79
|
+
.dsn-drawer {
|
|
80
|
+
transition: none;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* ===== Side: Right (standaard) ===== */
|
|
85
|
+
|
|
86
|
+
.dsn-drawer--side-right {
|
|
87
|
+
right: 0;
|
|
88
|
+
left: auto;
|
|
89
|
+
|
|
90
|
+
/* Alleen de rand aan de kant van de pagina (links) */
|
|
91
|
+
border-inline-start: var(--dsn-drawer-border-width) solid
|
|
92
|
+
var(--dsn-drawer-border-color);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Openingsanimatie rechts: start buiten beeld rechts */
|
|
96
|
+
@starting-style {
|
|
97
|
+
.dsn-drawer--side-right[open] {
|
|
98
|
+
opacity: 0;
|
|
99
|
+
transform: translateX(100%);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Native backdrop (alleen bij .showModal()) */
|
|
104
|
+
.dsn-drawer--side-right::backdrop {
|
|
105
|
+
background: var(--dsn-backdrop-background, rgba(0, 0, 0, 0.5));
|
|
106
|
+
backdrop-filter: var(--dsn-backdrop-blur, blur(2px));
|
|
107
|
+
opacity: 1;
|
|
108
|
+
transition:
|
|
109
|
+
opacity var(--dsn-transition-duration-normal)
|
|
110
|
+
var(--dsn-transition-easing-default),
|
|
111
|
+
display var(--dsn-transition-duration-normal)
|
|
112
|
+
var(--dsn-transition-easing-default) allow-discrete,
|
|
113
|
+
overlay var(--dsn-transition-duration-normal)
|
|
114
|
+
var(--dsn-transition-easing-default) allow-discrete;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@starting-style {
|
|
118
|
+
.dsn-drawer--side-right[open]::backdrop {
|
|
119
|
+
opacity: 0;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@media (prefers-reduced-motion: reduce) {
|
|
124
|
+
.dsn-drawer--side-right::backdrop {
|
|
125
|
+
transition: none;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* ===== Side: Left ===== */
|
|
130
|
+
|
|
131
|
+
.dsn-drawer--side-left {
|
|
132
|
+
left: 0;
|
|
133
|
+
right: auto;
|
|
134
|
+
|
|
135
|
+
/* Alleen de rand aan de kant van de pagina (rechts) */
|
|
136
|
+
border-inline-end: var(--dsn-drawer-border-width) solid
|
|
137
|
+
var(--dsn-drawer-border-color);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* Openingsanimatie links: start buiten beeld links */
|
|
141
|
+
@starting-style {
|
|
142
|
+
.dsn-drawer--side-left[open] {
|
|
143
|
+
opacity: 0;
|
|
144
|
+
transform: translateX(-100%);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* Native backdrop (alleen bij .showModal()) */
|
|
149
|
+
.dsn-drawer--side-left::backdrop {
|
|
150
|
+
background: var(--dsn-backdrop-background, rgba(0, 0, 0, 0.5));
|
|
151
|
+
backdrop-filter: var(--dsn-backdrop-blur, blur(2px));
|
|
152
|
+
opacity: 1;
|
|
153
|
+
transition:
|
|
154
|
+
opacity var(--dsn-transition-duration-normal)
|
|
155
|
+
var(--dsn-transition-easing-default),
|
|
156
|
+
display var(--dsn-transition-duration-normal)
|
|
157
|
+
var(--dsn-transition-easing-default) allow-discrete,
|
|
158
|
+
overlay var(--dsn-transition-duration-normal)
|
|
159
|
+
var(--dsn-transition-easing-default) allow-discrete;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@starting-style {
|
|
163
|
+
.dsn-drawer--side-left[open]::backdrop {
|
|
164
|
+
opacity: 0;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@media (prefers-reduced-motion: reduce) {
|
|
169
|
+
.dsn-drawer--side-left::backdrop {
|
|
170
|
+
transition: none;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* ===== Header ===== */
|
|
175
|
+
|
|
176
|
+
.dsn-drawer__header {
|
|
177
|
+
display: flex;
|
|
178
|
+
align-items: center;
|
|
179
|
+
gap: var(--dsn-space-inline-xl);
|
|
180
|
+
flex-shrink: 0;
|
|
181
|
+
|
|
182
|
+
padding-block-start: var(--dsn-drawer-header-padding-block-start);
|
|
183
|
+
padding-block-end: var(--dsn-drawer-header-padding-block-end);
|
|
184
|
+
padding-inline: var(--dsn-drawer-header-padding-inline);
|
|
185
|
+
|
|
186
|
+
/* Scheidingslijn onder de header */
|
|
187
|
+
border-block-end: var(--dsn-drawer-border-width) solid
|
|
188
|
+
var(--dsn-drawer-border-color);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* ===== Heading ===== */
|
|
192
|
+
|
|
193
|
+
.dsn-drawer-heading {
|
|
194
|
+
flex: 1;
|
|
195
|
+
margin: 0;
|
|
196
|
+
|
|
197
|
+
font-family: var(--dsn-drawer-heading-font-family);
|
|
198
|
+
font-weight: var(--dsn-drawer-heading-font-weight);
|
|
199
|
+
font-size: var(--dsn-drawer-heading-font-size);
|
|
200
|
+
line-height: var(--dsn-drawer-heading-line-height);
|
|
201
|
+
color: var(--dsn-drawer-heading-color);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/* ===== Body met scroll-affordance ===== */
|
|
205
|
+
/*
|
|
206
|
+
* Scroll-affordance schaduw (Lea Verou techniek — verticale variant):
|
|
207
|
+
* - Dekkende overlagen (background-attachment: local) scrollen mee met de content
|
|
208
|
+
* en verbergen de schaduwen wanneer je aan het begin of einde bent.
|
|
209
|
+
* - Schaduw-overlagen (background-attachment: scroll) blijven gefixeerd.
|
|
210
|
+
* - Resultaat: schaduw is zichtbaar zodra er content is om naartoe te scrollen.
|
|
211
|
+
*
|
|
212
|
+
* ⚠️ Vereist dat de achtergrondkleur overeenkomt met de drawer-achtergrond.
|
|
213
|
+
*/
|
|
214
|
+
|
|
215
|
+
.dsn-drawer__body {
|
|
216
|
+
--_bg: var(--dsn-drawer-background-color);
|
|
217
|
+
--_shadow: var(--dsn-color-shadow-scroll, rgba(0, 0, 0, 0.12));
|
|
218
|
+
|
|
219
|
+
flex: 1;
|
|
220
|
+
overflow-y: auto;
|
|
221
|
+
|
|
222
|
+
padding-block: var(--dsn-drawer-body-padding-block);
|
|
223
|
+
padding-inline: var(--dsn-drawer-body-padding-inline);
|
|
224
|
+
|
|
225
|
+
background-color: var(--_bg);
|
|
226
|
+
background-image:
|
|
227
|
+
/* Top-cover (local): verbergt de bovenschaduw als je helemaal boven bent */
|
|
228
|
+
linear-gradient(to bottom, var(--_bg) 0%, transparent 100%),
|
|
229
|
+
/* Onder-cover (local): verbergt de onderschaduw als je helemaal onder bent */
|
|
230
|
+
linear-gradient(to top, var(--_bg) 0%, transparent 100%),
|
|
231
|
+
/* Bovenschaduw (scroll): altijd aanwezig */
|
|
232
|
+
linear-gradient(to bottom, var(--_shadow) 0%, transparent 100%),
|
|
233
|
+
/* Onderschaduw (scroll): altijd aanwezig */
|
|
234
|
+
linear-gradient(to top, var(--_shadow) 0%, transparent 100%);
|
|
235
|
+
background-repeat: no-repeat;
|
|
236
|
+
background-size:
|
|
237
|
+
100% 4rem,
|
|
238
|
+
100% 4rem,
|
|
239
|
+
100% 2rem,
|
|
240
|
+
100% 2rem;
|
|
241
|
+
background-position: top, bottom, top, bottom;
|
|
242
|
+
background-attachment: local, local, scroll, scroll;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* ===== Footer ===== */
|
|
246
|
+
|
|
247
|
+
.dsn-drawer__footer {
|
|
248
|
+
flex-shrink: 0;
|
|
249
|
+
|
|
250
|
+
padding-block-start: var(--dsn-drawer-footer-padding-block-start);
|
|
251
|
+
padding-block-end: var(--dsn-drawer-footer-padding-block-end);
|
|
252
|
+
padding-inline: var(--dsn-drawer-footer-padding-inline);
|
|
253
|
+
|
|
254
|
+
/* Scheidingslijn boven de footer */
|
|
255
|
+
border-block-start: var(--dsn-drawer-border-width) solid
|
|
256
|
+
var(--dsn-drawer-border-color);
|
|
257
|
+
}
|
|
258
|
+
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Drawer.css';
|
|
3
|
+
export interface DrawerProps extends Omit<React.HTMLAttributes<HTMLDialogElement>, 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* Bepaalt of het zijpaneel getoond wordt.
|
|
6
|
+
*/
|
|
7
|
+
isOpen: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Callback die wordt aangeroepen wanneer het zijpaneel sluit
|
|
10
|
+
* (sluitknop, Escape-toets).
|
|
11
|
+
*/
|
|
12
|
+
onClose?: () => void;
|
|
13
|
+
/**
|
|
14
|
+
* Modaal of non-modaal gedrag.
|
|
15
|
+
* - `true` (standaard): opent via `.showModal()` — achtergrond geblokkeerd,
|
|
16
|
+
* natieve focus-trap, Escape sluit via `cancel`-event.
|
|
17
|
+
* - `false`: opent via `.show()` — achtergrond blijft interactief,
|
|
18
|
+
* Escape sluit via `keydown`-listener.
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
modal?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* De kant van de viewport vanwaar het zijpaneel inschuift.
|
|
24
|
+
* @default "right"
|
|
25
|
+
*/
|
|
26
|
+
side?: 'right' | 'left';
|
|
27
|
+
/**
|
|
28
|
+
* De subcomponenten van het zijpaneel:
|
|
29
|
+
* `DrawerHeader`, `DrawerBody`, `DrawerFooter`
|
|
30
|
+
*/
|
|
31
|
+
children?: React.ReactNode;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Drawer component
|
|
35
|
+
* Zijpaneel dat vanuit links of rechts de viewport inschuift.
|
|
36
|
+
*
|
|
37
|
+
* Gebruik `modal={true}` (standaard) voor gefocuste taken waarbij de achtergrond
|
|
38
|
+
* geblokkeerd moet worden. Gebruik `modal={false}` als de gebruiker de achtergrondpagina
|
|
39
|
+
* nodig heeft voor context.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* <Drawer isOpen={isOpen} onClose={() => setIsOpen(false)}>
|
|
44
|
+
* <DrawerHeader>
|
|
45
|
+
* <DrawerHeading>Filteropties</DrawerHeading>
|
|
46
|
+
* </DrawerHeader>
|
|
47
|
+
* <DrawerBody>
|
|
48
|
+
* <Paragraph>Inhoud van het zijpaneel</Paragraph>
|
|
49
|
+
* </DrawerBody>
|
|
50
|
+
* <DrawerFooter>
|
|
51
|
+
* <ActionGroup>
|
|
52
|
+
* <Button variant="strong" onClick={() => setIsOpen(false)}>Toepassen</Button>
|
|
53
|
+
* <Button variant="default" onClick={() => setIsOpen(false)}>Annuleren</Button>
|
|
54
|
+
* </ActionGroup>
|
|
55
|
+
* </DrawerFooter>
|
|
56
|
+
* </Drawer>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare const Drawer: React.ForwardRefExoticComponent<DrawerProps & React.RefAttributes<HTMLDialogElement>>;
|
|
60
|
+
export interface DrawerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
61
|
+
/**
|
|
62
|
+
* Inhoud van de header — doorgaans een `DrawerHeading`
|
|
63
|
+
*/
|
|
64
|
+
children?: React.ReactNode;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* DrawerHeader
|
|
68
|
+
* De headerstrook van het zijpaneel met heading en sluitknop.
|
|
69
|
+
*/
|
|
70
|
+
export declare const DrawerHeader: React.ForwardRefExoticComponent<DrawerHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
71
|
+
export interface DrawerHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
72
|
+
/**
|
|
73
|
+
* Semantisch heading-niveau. Kies op basis van documenthiërarchie, niet visuele grootte.
|
|
74
|
+
* @default 2
|
|
75
|
+
*/
|
|
76
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
77
|
+
/**
|
|
78
|
+
* De zichtbare heading-tekst
|
|
79
|
+
*/
|
|
80
|
+
children?: React.ReactNode;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* DrawerHeading
|
|
84
|
+
* De heading van het zijpaneel. ID wordt automatisch gegenereerd voor aria-labelledby.
|
|
85
|
+
*/
|
|
86
|
+
export declare const DrawerHeading: React.ForwardRefExoticComponent<DrawerHeadingProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
87
|
+
export interface DrawerBodyProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
88
|
+
/**
|
|
89
|
+
* De hoofdinhoud van het zijpaneel
|
|
90
|
+
*/
|
|
91
|
+
children?: React.ReactNode;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* DrawerBody
|
|
95
|
+
* De scrollbare inhoudssectie van het zijpaneel met scroll-affordance schaduw.
|
|
96
|
+
*/
|
|
97
|
+
export declare const DrawerBody: React.ForwardRefExoticComponent<DrawerBodyProps & React.RefAttributes<HTMLDivElement>>;
|
|
98
|
+
export interface DrawerFooterProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
99
|
+
/**
|
|
100
|
+
* De acties van het zijpaneel — doorgaans een `ActionGroup` met knoppen
|
|
101
|
+
*/
|
|
102
|
+
children?: React.ReactNode;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* DrawerFooter
|
|
106
|
+
* De voettekst van het zijpaneel met actieknoppen.
|
|
107
|
+
*/
|
|
108
|
+
export declare const DrawerFooter: React.ForwardRefExoticComponent<DrawerFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
109
|
+
//# sourceMappingURL=Drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../src/Drawer/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,cAAc,CAAC;AAmBtB,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,EACvC,UAAU,CACX;IACC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,MAAM,uFA2ElB,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,0FAuBxB,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC;IAClF;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,+FAiBxB,CAAC;AAQH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,wFAYtB,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,0FAYxB,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { classNames } from '@dsn-starter-kit/core';
|
|
4
|
+
import { Button } from '../Button';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import './Drawer.css';
|
|
7
|
+
const DrawerContext = React.createContext({
|
|
8
|
+
headingId: '',
|
|
9
|
+
});
|
|
10
|
+
/**
|
|
11
|
+
* Drawer component
|
|
12
|
+
* Zijpaneel dat vanuit links of rechts de viewport inschuift.
|
|
13
|
+
*
|
|
14
|
+
* Gebruik `modal={true}` (standaard) voor gefocuste taken waarbij de achtergrond
|
|
15
|
+
* geblokkeerd moet worden. Gebruik `modal={false}` als de gebruiker de achtergrondpagina
|
|
16
|
+
* nodig heeft voor context.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <Drawer isOpen={isOpen} onClose={() => setIsOpen(false)}>
|
|
21
|
+
* <DrawerHeader>
|
|
22
|
+
* <DrawerHeading>Filteropties</DrawerHeading>
|
|
23
|
+
* </DrawerHeader>
|
|
24
|
+
* <DrawerBody>
|
|
25
|
+
* <Paragraph>Inhoud van het zijpaneel</Paragraph>
|
|
26
|
+
* </DrawerBody>
|
|
27
|
+
* <DrawerFooter>
|
|
28
|
+
* <ActionGroup>
|
|
29
|
+
* <Button variant="strong" onClick={() => setIsOpen(false)}>Toepassen</Button>
|
|
30
|
+
* <Button variant="default" onClick={() => setIsOpen(false)}>Annuleren</Button>
|
|
31
|
+
* </ActionGroup>
|
|
32
|
+
* </DrawerFooter>
|
|
33
|
+
* </Drawer>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export const Drawer = React.forwardRef(({ className, isOpen, onClose, modal = true, side = 'right', children, ...props }, ref) => {
|
|
37
|
+
const internalRef = React.useRef(null);
|
|
38
|
+
const dialogRef = ref ?? internalRef;
|
|
39
|
+
const headingId = React.useId();
|
|
40
|
+
React.useEffect(() => {
|
|
41
|
+
const dialog = dialogRef.current;
|
|
42
|
+
if (!dialog)
|
|
43
|
+
return;
|
|
44
|
+
if (isOpen && !dialog.open) {
|
|
45
|
+
if (modal) {
|
|
46
|
+
dialog.showModal();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
dialog.show();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (!isOpen && dialog.open) {
|
|
53
|
+
dialog.close();
|
|
54
|
+
}
|
|
55
|
+
}, [isOpen, modal, dialogRef]);
|
|
56
|
+
// Non-modaal: handmatige Escape-afhandeling via keydown
|
|
57
|
+
React.useEffect(() => {
|
|
58
|
+
if (modal)
|
|
59
|
+
return;
|
|
60
|
+
const dialog = dialogRef.current;
|
|
61
|
+
if (!dialog || !isOpen)
|
|
62
|
+
return;
|
|
63
|
+
const handleKeyDown = (event) => {
|
|
64
|
+
if (event.key === 'Escape') {
|
|
65
|
+
onClose?.();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
dialog.addEventListener('keydown', handleKeyDown);
|
|
69
|
+
return () => dialog.removeEventListener('keydown', handleKeyDown);
|
|
70
|
+
}, [modal, isOpen, onClose, dialogRef]);
|
|
71
|
+
// Modaal: native cancel-event (Escape via browser)
|
|
72
|
+
const handleCancel = (event) => {
|
|
73
|
+
event.preventDefault();
|
|
74
|
+
onClose?.();
|
|
75
|
+
};
|
|
76
|
+
const classes = classNames('dsn-drawer', side === 'left' ? 'dsn-drawer--side-left' : 'dsn-drawer--side-right', className);
|
|
77
|
+
return (_jsx(DrawerContext.Provider, { value: { headingId, onClose }, children: _jsx("dialog", { ref: dialogRef, className: classes, "aria-labelledby": headingId, onCancel: handleCancel, ...props, children: children }) }));
|
|
78
|
+
});
|
|
79
|
+
Drawer.displayName = 'Drawer';
|
|
80
|
+
/**
|
|
81
|
+
* DrawerHeader
|
|
82
|
+
* De headerstrook van het zijpaneel met heading en sluitknop.
|
|
83
|
+
*/
|
|
84
|
+
export const DrawerHeader = React.forwardRef(({ className, children, ...props }, ref) => {
|
|
85
|
+
const { onClose } = React.useContext(DrawerContext);
|
|
86
|
+
return (_jsxs("div", { ref: ref, className: classNames('dsn-drawer__header', className), ...props, children: [children, _jsx(Button, { variant: "subtle", size: "small", iconOnly: true, onClick: onClose, iconStart: _jsx(Icon, { name: "x", "aria-hidden": true }), children: "Sluiten" })] }));
|
|
87
|
+
});
|
|
88
|
+
DrawerHeader.displayName = 'DrawerHeader';
|
|
89
|
+
/**
|
|
90
|
+
* DrawerHeading
|
|
91
|
+
* De heading van het zijpaneel. ID wordt automatisch gegenereerd voor aria-labelledby.
|
|
92
|
+
*/
|
|
93
|
+
export const DrawerHeading = React.forwardRef(({ className, level = 2, children, ...props }, ref) => {
|
|
94
|
+
const { headingId } = React.useContext(DrawerContext);
|
|
95
|
+
const Tag = `h${level}`;
|
|
96
|
+
return (_jsx(Tag, { ref: ref, id: headingId, className: classNames('dsn-drawer-heading', className), ...props, children: children }));
|
|
97
|
+
});
|
|
98
|
+
DrawerHeading.displayName = 'DrawerHeading';
|
|
99
|
+
/**
|
|
100
|
+
* DrawerBody
|
|
101
|
+
* De scrollbare inhoudssectie van het zijpaneel met scroll-affordance schaduw.
|
|
102
|
+
*/
|
|
103
|
+
export const DrawerBody = React.forwardRef(({ className, children, ...props }, ref) => {
|
|
104
|
+
return (_jsx("div", { ref: ref, className: classNames('dsn-drawer__body', className), ...props, children: children }));
|
|
105
|
+
});
|
|
106
|
+
DrawerBody.displayName = 'DrawerBody';
|
|
107
|
+
/**
|
|
108
|
+
* DrawerFooter
|
|
109
|
+
* De voettekst van het zijpaneel met actieknoppen.
|
|
110
|
+
*/
|
|
111
|
+
export const DrawerFooter = React.forwardRef(({ className, children, ...props }, ref) => {
|
|
112
|
+
return (_jsx("div", { ref: ref, className: classNames('dsn-drawer__footer', className), ...props, children: children }));
|
|
113
|
+
});
|
|
114
|
+
DrawerFooter.displayName = 'DrawerFooter';
|
|
115
|
+
//# sourceMappingURL=Drawer.js.map
|