@digigov/ui 0.30.2 → 0.31.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/CHANGELOG.md +16 -1
- package/admin/AccessibilityMenu/index.d.ts +13 -0
- package/admin/AccessibilityMenu/index.js +170 -0
- package/admin/AutoComplete/index.d.ts +2 -2
- package/admin/Chip/index.d.ts +1 -0
- package/admin/Chip/index.js +14 -0
- package/admin/Drawer/__stories__/Default.js +18 -7
- package/admin/Dropdown/__stories__/AlignRight.js +0 -2
- package/admin/Dropdown/__stories__/Default.js +0 -2
- package/admin/Dropdown/__stories__/PlacementTop.js +0 -2
- package/admin/FilterSection/index.d.ts +1 -2
- package/admin/FilterSection/index.js +4 -18
- package/admin/Modal/index.d.ts +2 -2
- package/admin/Modal/index.js +17 -12
- package/admin/Pagination/__stories__/Default.js +4 -7
- package/admin/Pagination/__stories__/PaginationSmall.js +2 -3
- package/app/Footer/__stories__/FooterAllInclusive.js +1 -0
- package/app/Footer/__stories__/FooterWithSecondaryNavigation.js +1 -0
- package/app/Header/__stories__/WithNavigation.js +10 -8
- package/app/QrCodeScanner/__stories__/Default.js +3 -3
- package/app/QrCodeViewer/QRCode.stories.d.ts +0 -1
- package/app/QrCodeViewer/index.d.ts +1 -2
- package/app/QrCodeViewer/index.js +10 -10
- package/app/ThemeOptionsForm/index.d.ts +2 -0
- package/app/ThemeOptionsForm/index.js +243 -0
- package/app/ThemePaletteForm/index.d.ts +2 -0
- package/app/{ThemeSelectorOptions → ThemePaletteForm}/index.js +9 -8
- package/app/index.d.ts +2 -1
- package/app/index.js +17 -4
- package/core/Accordion/index.d.ts +2 -2
- package/core/Accordion/index.js +7 -7
- package/core/Divider/__stories__/Default.js +5 -10
- package/core/ErrorSummary/__stories__/Default.js +3 -3
- package/core/ErrorSummary/__stories__/LinkedToCheckbox.js +3 -3
- package/core/ErrorSummary/__stories__/LinkedToField.js +3 -3
- package/core/ErrorSummary/__stories__/LinkedToInput.js +3 -3
- package/core/Link/__stories__/DarkBackground.js +6 -2
- package/core/Link/__stories__/DarkBackgroundNoUnderline.js +6 -2
- package/core/NavList/NavList.stories.d.ts +3 -1
- package/core/NavList/NavList.stories.js +32 -4
- package/core/NavList/NavList.stories.playwright.json +6 -6
- package/core/NavList/{NavListAuto.js → NavListAuto/NavListAuto.js} +11 -5
- package/core/NavList/{NavListBase.d.ts → NavListAuto/NavListBaseAuto.d.ts} +1 -1
- package/core/NavList/{NavListBase.js → NavListAuto/NavListBaseAuto.js} +6 -4
- package/core/NavList/{NavListContext.d.ts → NavListAuto/NavListContextAuto.d.ts} +7 -4
- package/core/NavList/{NavListContext.js → NavListAuto/NavListContextAuto.js} +23 -11
- package/core/NavList/NavListAuto/NavListItemAnchorAuto.d.ts +11 -0
- package/core/NavList/{NavListSubMenu.js → NavListAuto/NavListItemAnchorAuto.js} +25 -21
- package/core/NavList/{NavListItemAuto.js → NavListAuto/NavListItemAuto.js} +23 -20
- package/core/NavList/NavListAuto/NavListItemButtonAuto.d.ts +12 -0
- package/core/NavList/NavListAuto/NavListItemButtonAuto.js +50 -0
- package/core/NavList/NavListAuto/NavListMenuAuto.d.ts +11 -0
- package/core/NavList/NavListAuto/NavListMenuAuto.js +59 -0
- package/core/NavList/NavListAuto/NavListSubMenuAuto.d.ts +9 -0
- package/core/NavList/NavListAuto/NavListSubMenuAuto.js +46 -0
- package/core/NavList/NavListItem.js +6 -5
- package/core/NavList/NavListItemBase.d.ts +1 -1
- package/core/NavList/NavListItemBase.js +3 -3
- package/core/NavList/NavMenuContainerContentList.d.ts +3 -1
- package/core/NavList/NavMenuContainerContentList.js +76 -3
- package/core/NavList/__stories__/Default.js +19 -6
- package/core/NavList/__stories__/NavHorizontalLayout.js +17 -5
- package/core/NavList/__stories__/NavListEpathlaExample.js +24 -12
- package/core/NavList/__stories__/NavListHorizontalAutoExample.d.ts +2 -0
- package/core/NavList/__stories__/NavListHorizontalAutoExample.js +67 -0
- package/core/NavList/__stories__/NavListSecondaryAutoExample.d.ts +2 -0
- package/core/NavList/__stories__/NavListSecondaryAutoExample.js +281 -0
- package/core/NavList/__stories__/NavListVerticalAutoExample.d.ts +2 -0
- package/core/NavList/__stories__/NavListVerticalAutoExample.js +67 -0
- package/core/NavList/index.d.ts +2 -5
- package/core/NavList/index.js +5 -33
- package/core/NavList/types.d.ts +20 -10
- package/core/Tabs/__stories__/Default.js +5 -5
- package/core/Tabs/index.d.ts +2 -2
- package/core/Tabs/index.js +5 -7
- package/es/admin/AccessibilityMenu/index.js +13 -0
- package/es/admin/Chip/index.js +1 -0
- package/es/admin/Drawer/__stories__/Default.js +19 -8
- package/es/admin/Dropdown/__stories__/AlignRight.js +0 -2
- package/es/admin/Dropdown/__stories__/Default.js +0 -2
- package/es/admin/Dropdown/__stories__/PlacementTop.js +0 -2
- package/es/admin/FilterSection/index.js +1 -2
- package/es/admin/Modal/index.js +16 -11
- package/es/admin/Pagination/__stories__/Default.js +4 -7
- package/es/admin/Pagination/__stories__/PaginationSmall.js +2 -3
- package/es/app/Footer/__stories__/FooterAllInclusive.js +1 -0
- package/es/app/Footer/__stories__/FooterWithSecondaryNavigation.js +1 -0
- package/es/app/Header/__stories__/WithNavigation.js +10 -8
- package/es/app/QrCodeScanner/__stories__/Default.js +3 -3
- package/es/app/QrCodeViewer/index.js +8 -9
- package/es/app/ThemeOptionsForm/index.js +215 -0
- package/es/app/{ThemeSelectorOptions → ThemePaletteForm}/index.js +5 -4
- package/es/app/index.js +2 -1
- package/es/core/Accordion/index.js +7 -7
- package/es/core/Divider/__stories__/Default.js +5 -10
- package/es/core/ErrorSummary/__stories__/Default.js +3 -3
- package/es/core/ErrorSummary/__stories__/LinkedToCheckbox.js +3 -3
- package/es/core/ErrorSummary/__stories__/LinkedToField.js +3 -3
- package/es/core/ErrorSummary/__stories__/LinkedToInput.js +3 -3
- package/es/core/Link/__stories__/DarkBackground.js +6 -2
- package/es/core/Link/__stories__/DarkBackgroundNoUnderline.js +6 -2
- package/es/core/NavList/NavList.stories.js +3 -1
- package/es/core/NavList/NavList.stories.playwright.json +6 -6
- package/{esm/core/NavList → es/core/NavList/NavListAuto}/NavListAuto.js +11 -5
- package/{esm/core/NavList/NavListBase.js → es/core/NavList/NavListAuto/NavListBaseAuto.js} +4 -2
- package/es/core/NavList/{NavListContext.js → NavListAuto/NavListContextAuto.js} +20 -8
- package/es/core/NavList/NavListAuto/NavListItemAnchorAuto.js +29 -0
- package/es/core/NavList/NavListAuto/NavListItemAuto.js +42 -0
- package/es/core/NavList/NavListAuto/NavListItemButtonAuto.js +32 -0
- package/es/core/NavList/NavListAuto/NavListMenuAuto.js +39 -0
- package/es/core/NavList/NavListAuto/NavListSubMenuAuto.js +28 -0
- package/es/core/NavList/NavListItem.js +8 -7
- package/es/core/NavList/NavListItemBase.js +3 -3
- package/es/core/NavList/NavMenuContainerContentList.js +67 -1
- package/es/core/NavList/__stories__/Default.js +19 -6
- package/es/core/NavList/__stories__/NavHorizontalLayout.js +17 -5
- package/es/core/NavList/__stories__/NavListEpathlaExample.js +24 -12
- package/es/core/NavList/__stories__/NavListHorizontalAutoExample.js +51 -0
- package/es/core/NavList/__stories__/NavListSecondaryAutoExample.js +255 -0
- package/es/core/NavList/__stories__/NavListVerticalAutoExample.js +51 -0
- package/es/core/NavList/index.js +2 -5
- package/es/core/Tabs/__stories__/Default.js +5 -5
- package/es/core/Tabs/index.js +5 -7
- package/es/hooks/useFontSize.js +10 -0
- package/es/hooks/useHighlightLinks.js +38 -0
- package/es/hooks/useLetterSpacing.js +10 -0
- package/es/hooks/useLineHeight.js +10 -0
- package/es/hooks/useNavList.js +10 -7
- package/es/hooks/useTheme.js +19 -11
- package/es/hooks/useTogglableNav.js +292 -0
- package/es/hooks/{useTogglableSections.js → useTogglableTab.js} +2 -8
- package/es/hooks/useVariantVars.js +30 -0
- package/es/layouts/Basic/__stories__/Default.js +2 -2
- package/es/layouts/Basic/__stories__/MultipleRowsLayout.js +3 -3
- package/es/layouts/Basic/__stories__/TwoThirdsOneThirdColumns.js +3 -3
- package/es/registry.js +36 -14
- package/es/typography/NormalText/__stories__/FontSizes.js +18 -6
- package/es/typography/NormalText/__stories__/FontWeight.js +3 -1
- package/es/typography/NormalText/__stories__/Variants.js +3 -1
- package/esm/admin/AccessibilityMenu/index.js +13 -0
- package/esm/admin/Chip/index.js +1 -0
- package/esm/admin/Drawer/__stories__/Default.js +19 -8
- package/esm/admin/Dropdown/__stories__/AlignRight.js +0 -2
- package/esm/admin/Dropdown/__stories__/Default.js +0 -2
- package/esm/admin/Dropdown/__stories__/PlacementTop.js +0 -2
- package/esm/admin/FilterSection/index.js +1 -2
- package/esm/admin/Modal/index.js +16 -11
- package/esm/admin/Pagination/__stories__/Default.js +4 -7
- package/esm/admin/Pagination/__stories__/PaginationSmall.js +2 -3
- package/esm/app/Footer/__stories__/FooterAllInclusive.js +1 -0
- package/esm/app/Footer/__stories__/FooterWithSecondaryNavigation.js +1 -0
- package/esm/app/Header/__stories__/WithNavigation.js +10 -8
- package/esm/app/QrCodeScanner/__stories__/Default.js +3 -3
- package/esm/app/QrCodeViewer/index.js +8 -9
- package/esm/app/ThemeOptionsForm/index.js +215 -0
- package/esm/app/{ThemeSelectorOptions → ThemePaletteForm}/index.js +5 -4
- package/esm/app/index.js +2 -1
- package/esm/core/Accordion/index.js +7 -7
- package/esm/core/Divider/__stories__/Default.js +5 -10
- package/esm/core/ErrorSummary/__stories__/Default.js +3 -3
- package/esm/core/ErrorSummary/__stories__/LinkedToCheckbox.js +3 -3
- package/esm/core/ErrorSummary/__stories__/LinkedToField.js +3 -3
- package/esm/core/ErrorSummary/__stories__/LinkedToInput.js +3 -3
- package/esm/core/Link/__stories__/DarkBackground.js +6 -2
- package/esm/core/Link/__stories__/DarkBackgroundNoUnderline.js +6 -2
- package/esm/core/NavList/NavList.stories.js +3 -1
- package/esm/core/NavList/NavList.stories.playwright.json +6 -6
- package/{es/core/NavList → esm/core/NavList/NavListAuto}/NavListAuto.js +11 -5
- package/{es/core/NavList/NavListBase.js → esm/core/NavList/NavListAuto/NavListBaseAuto.js} +4 -2
- package/esm/core/NavList/{NavListContext.js → NavListAuto/NavListContextAuto.js} +20 -8
- package/esm/core/NavList/NavListAuto/NavListItemAnchorAuto.js +29 -0
- package/esm/core/NavList/NavListAuto/NavListItemAuto.js +42 -0
- package/esm/core/NavList/NavListAuto/NavListItemButtonAuto.js +32 -0
- package/esm/core/NavList/NavListAuto/NavListMenuAuto.js +39 -0
- package/esm/core/NavList/NavListAuto/NavListSubMenuAuto.js +28 -0
- package/esm/core/NavList/NavListItem.js +8 -7
- package/esm/core/NavList/NavListItemBase.js +3 -3
- package/esm/core/NavList/NavMenuContainerContentList.js +67 -1
- package/esm/core/NavList/__stories__/Default.js +19 -6
- package/esm/core/NavList/__stories__/NavHorizontalLayout.js +17 -5
- package/esm/core/NavList/__stories__/NavListEpathlaExample.js +24 -12
- package/esm/core/NavList/__stories__/NavListHorizontalAutoExample.js +51 -0
- package/esm/core/NavList/__stories__/NavListSecondaryAutoExample.js +255 -0
- package/esm/core/NavList/__stories__/NavListVerticalAutoExample.js +51 -0
- package/esm/core/NavList/index.js +2 -5
- package/esm/core/Tabs/__stories__/Default.js +5 -5
- package/esm/core/Tabs/index.js +5 -7
- package/esm/hooks/useFontSize.js +10 -0
- package/esm/hooks/useHighlightLinks.js +38 -0
- package/esm/hooks/useLetterSpacing.js +10 -0
- package/esm/hooks/useLineHeight.js +10 -0
- package/esm/hooks/useNavList.js +10 -7
- package/esm/hooks/useTheme.js +19 -11
- package/esm/hooks/useTogglableNav.js +292 -0
- package/esm/hooks/{useTogglableSections.js → useTogglableTab.js} +2 -8
- package/esm/hooks/useVariantVars.js +30 -0
- package/esm/index.js +1 -1
- package/esm/layouts/Basic/__stories__/Default.js +2 -2
- package/esm/layouts/Basic/__stories__/MultipleRowsLayout.js +3 -3
- package/esm/layouts/Basic/__stories__/TwoThirdsOneThirdColumns.js +3 -3
- package/esm/registry.js +36 -14
- package/esm/typography/NormalText/__stories__/FontSizes.js +18 -6
- package/esm/typography/NormalText/__stories__/FontWeight.js +3 -1
- package/esm/typography/NormalText/__stories__/Variants.js +3 -1
- package/hooks/useFontSize.d.ts +6 -0
- package/hooks/useFontSize.js +23 -0
- package/hooks/useHighlightLinks.d.ts +8 -0
- package/hooks/useHighlightLinks.js +52 -0
- package/hooks/useLetterSpacing.d.ts +6 -0
- package/hooks/useLetterSpacing.js +23 -0
- package/hooks/useLineHeight.d.ts +6 -0
- package/hooks/useLineHeight.js +23 -0
- package/hooks/useNavList.d.ts +2 -2
- package/hooks/useNavList.js +11 -8
- package/hooks/useTheme.d.ts +4 -4
- package/hooks/useTheme.js +19 -12
- package/hooks/useTogglableNav.d.ts +25 -0
- package/hooks/useTogglableNav.js +305 -0
- package/hooks/{useTogglableSections.d.ts → useTogglableTab.d.ts} +4 -3
- package/hooks/{useTogglableSections.js → useTogglableTab.js} +3 -9
- package/hooks/useVariantVars.d.ts +11 -0
- package/hooks/useVariantVars.js +41 -0
- package/layouts/Basic/__stories__/Default.js +2 -2
- package/layouts/Basic/__stories__/MultipleRowsLayout.js +3 -3
- package/layouts/Basic/__stories__/TwoThirdsOneThirdColumns.js +3 -3
- package/package.json +3 -3
- package/registry.d.ts +18 -7
- package/registry.js +49 -16
- package/src/admin/AccessibilityMenu/index.tsx +14 -0
- package/src/admin/AutoComplete/index.tsx +2 -2
- package/src/admin/Chip/index.tsx +1 -0
- package/src/admin/Drawer/__stories__/Default.tsx +23 -9
- package/src/admin/Dropdown/__stories__/AlignRight.tsx +2 -2
- package/src/admin/Dropdown/__stories__/Default.tsx +2 -2
- package/src/admin/Dropdown/__stories__/PlacementTop.tsx +2 -2
- package/src/admin/FilterSection/index.tsx +1 -2
- package/src/admin/Modal/index.tsx +43 -39
- package/src/admin/Pagination/__stories__/Default.tsx +4 -4
- package/src/admin/Pagination/__stories__/PaginationSmall.tsx +2 -2
- package/src/app/Footer/__stories__/FooterAllInclusive.tsx +1 -1
- package/src/app/Footer/__stories__/FooterWithSecondaryNavigation.tsx +1 -1
- package/src/app/Header/__stories__/WithNavigation.tsx +8 -8
- package/src/app/QrCodeScanner/__stories__/Default.tsx +2 -2
- package/src/app/QrCodeViewer/index.tsx +16 -14
- package/src/app/ThemeOptionsForm/index.tsx +220 -0
- package/src/app/{ThemeSelectorOptions → ThemePaletteForm}/index.tsx +3 -3
- package/src/app/index.ts +2 -1
- package/src/core/Accordion/index.tsx +5 -11
- package/src/core/Divider/__stories__/Default.tsx +5 -5
- package/src/core/ErrorSummary/__stories__/Default.tsx +2 -2
- package/src/core/ErrorSummary/__stories__/LinkedToCheckbox.tsx +2 -2
- package/src/core/ErrorSummary/__stories__/LinkedToField.tsx +2 -2
- package/src/core/ErrorSummary/__stories__/LinkedToInput.tsx +2 -2
- package/src/core/Link/__stories__/DarkBackground.tsx +2 -3
- package/src/core/Link/__stories__/DarkBackgroundNoUnderline.tsx +2 -3
- package/src/core/NavList/NavList.stories.js +3 -1
- package/src/core/NavList/NavList.stories.playwright.json +6 -6
- package/src/core/NavList/NavListAuto/NavListAuto.tsx +34 -0
- package/src/core/NavList/{NavListBase.tsx → NavListAuto/NavListBaseAuto.tsx} +2 -2
- package/src/core/NavList/{NavListContext.tsx → NavListAuto/NavListContextAuto.tsx} +26 -11
- package/src/core/NavList/NavListAuto/NavListItemAnchorAuto.tsx +41 -0
- package/src/core/NavList/NavListAuto/NavListItemAuto.tsx +51 -0
- package/src/core/NavList/NavListAuto/NavListItemButtonAuto.tsx +53 -0
- package/src/core/NavList/NavListAuto/NavListMenuAuto.tsx +51 -0
- package/src/core/NavList/NavListAuto/NavListSubMenuAuto.tsx +32 -0
- package/src/core/NavList/NavListItem.tsx +15 -9
- package/src/core/NavList/NavListItemBase.tsx +3 -3
- package/src/core/NavList/NavMenuContainerContentList.tsx +63 -1
- package/src/core/NavList/__stories__/Default.tsx +23 -8
- package/src/core/NavList/__stories__/NavHorizontalLayout.tsx +24 -8
- package/src/core/NavList/__stories__/NavListEpathlaExample.tsx +46 -25
- package/src/core/NavList/__stories__/NavListHorizontalAutoExample.tsx +65 -0
- package/src/core/NavList/__stories__/NavListSecondaryAutoExample.tsx +284 -0
- package/src/core/NavList/__stories__/NavListVerticalAutoExample.tsx +65 -0
- package/src/core/NavList/index.tsx +2 -5
- package/src/core/NavList/types.tsx +23 -9
- package/src/core/Tabs/__stories__/Default.tsx +5 -5
- package/src/core/Tabs/index.tsx +5 -9
- package/src/hooks/useFontSize.ts +32 -0
- package/src/hooks/useHighlightLinks.ts +45 -0
- package/src/hooks/useLetterSpacing.ts +27 -0
- package/src/hooks/useLineHeight.ts +31 -0
- package/src/hooks/useNavList.ts +5 -7
- package/src/hooks/useTheme.ts +28 -20
- package/src/hooks/useTogglableNav.tsx +294 -0
- package/src/hooks/{useTogglableSections.tsx → useTogglableTab.tsx} +12 -13
- package/src/hooks/useVariantVars.ts +35 -0
- package/src/layouts/Basic/__stories__/Default.tsx +3 -3
- package/src/layouts/Basic/__stories__/MultipleRowsLayout.tsx +8 -8
- package/src/layouts/Basic/__stories__/TwoThirdsOneThirdColumns.tsx +6 -6
- package/src/registry.js +36 -14
- package/src/typography/NormalText/__stories__/FontSizes.tsx +6 -6
- package/src/typography/NormalText/__stories__/FontWeight.tsx +1 -1
- package/src/typography/NormalText/__stories__/Variants.tsx +1 -1
- package/typography/NormalText/__stories__/FontSizes.js +18 -6
- package/typography/NormalText/__stories__/FontWeight.js +3 -1
- package/typography/NormalText/__stories__/Variants.js +3 -1
- package/app/ThemeSelectorOptions/index.d.ts +0 -2
- package/core/NavList/NavListSubMenu.d.ts +0 -8
- package/core/NavList/__stories__/NavListAutoExample.d.ts +0 -2
- package/core/NavList/__stories__/NavListAutoExample.js +0 -63
- package/es/core/NavList/NavListItemAuto.js +0 -40
- package/es/core/NavList/NavListSubMenu.js +0 -25
- package/es/core/NavList/__stories__/NavListAutoExample.js +0 -48
- package/esm/core/NavList/NavListItemAuto.js +0 -40
- package/esm/core/NavList/NavListSubMenu.js +0 -25
- package/esm/core/NavList/__stories__/NavListAutoExample.js +0 -48
- package/src/core/NavList/NavListAuto.tsx +0 -20
- package/src/core/NavList/NavListItemAuto.tsx +0 -41
- package/src/core/NavList/NavListSubMenu.tsx +0 -28
- package/src/core/NavList/__stories__/NavListAutoExample.tsx +0 -53
- /package/core/NavList/{NavListAuto.d.ts → NavListAuto/NavListAuto.d.ts} +0 -0
- /package/core/NavList/{NavListItemAuto.d.ts → NavListAuto/NavListItemAuto.d.ts} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { NavListProviderAuto } from '@digigov/ui/core/NavList/NavListAuto/NavListContextAuto';
|
|
3
|
+
import { NavListAutoProps } from '@digigov/ui/core/NavList/types';
|
|
4
|
+
import { NavListBaseAuto } from '@digigov/ui/core/NavList/NavListAuto/NavListBaseAuto';
|
|
5
|
+
|
|
6
|
+
export const NavListAuto: React.FC<NavListAutoProps> = ({
|
|
7
|
+
layout,
|
|
8
|
+
border,
|
|
9
|
+
fixed,
|
|
10
|
+
openSubMenus = false,
|
|
11
|
+
links = [],
|
|
12
|
+
role,
|
|
13
|
+
...props
|
|
14
|
+
}) => {
|
|
15
|
+
return (
|
|
16
|
+
<NavListProviderAuto
|
|
17
|
+
openSubMenus={openSubMenus}
|
|
18
|
+
layout={layout}
|
|
19
|
+
border={border}
|
|
20
|
+
fixed={fixed}
|
|
21
|
+
links={links}
|
|
22
|
+
>
|
|
23
|
+
<NavListBaseAuto
|
|
24
|
+
layout={layout}
|
|
25
|
+
border={border}
|
|
26
|
+
fixed={fixed}
|
|
27
|
+
role={role}
|
|
28
|
+
{...props}
|
|
29
|
+
/>
|
|
30
|
+
</NavListProviderAuto>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default NavListAuto;
|
|
@@ -3,7 +3,7 @@ import { NavListAutoProps } from '@digigov/ui/core/NavList/types';
|
|
|
3
3
|
import Nav from '@digigov/ui/core/NavList/Nav';
|
|
4
4
|
import NavList from '@digigov/ui/core/NavList/NavList';
|
|
5
5
|
|
|
6
|
-
export const
|
|
6
|
+
export const NavListBaseAuto: React.FC<NavListAutoProps> = ({
|
|
7
7
|
className,
|
|
8
8
|
children,
|
|
9
9
|
floating,
|
|
@@ -13,7 +13,7 @@ export const NavListBase: React.FC<NavListAutoProps> = ({
|
|
|
13
13
|
...props
|
|
14
14
|
}) => {
|
|
15
15
|
return (
|
|
16
|
-
<Nav open={true} layout={layout} {...props}>
|
|
16
|
+
<Nav open={true} layout={layout} {...props} aria-orientation={layout}>
|
|
17
17
|
<NavList layout={layout}>{children}</NavList>
|
|
18
18
|
</Nav>
|
|
19
19
|
);
|
|
@@ -12,6 +12,8 @@ export interface NavLinkInterface {
|
|
|
12
12
|
|
|
13
13
|
export interface NavListContextInterface {
|
|
14
14
|
layout?: NavListLayout;
|
|
15
|
+
border?: boolean;
|
|
16
|
+
fixed?: boolean;
|
|
15
17
|
openSubMenus?: boolean;
|
|
16
18
|
showDividers?: boolean;
|
|
17
19
|
links: NavLinkInterface[];
|
|
@@ -19,11 +21,14 @@ export interface NavListContextInterface {
|
|
|
19
21
|
activeSubMenu?: NavLinkInterface[];
|
|
20
22
|
onSubMenuActive?: (name: string) => void;
|
|
21
23
|
container?: (key: string) => { active: boolean; id: string };
|
|
22
|
-
|
|
24
|
+
setRegisterButton?: (name: string) => any;
|
|
25
|
+
setRegisterLink?: (name: string) => any;
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
export const
|
|
28
|
+
export const NavListContextAuto = createContext<NavListContextInterface>({
|
|
26
29
|
layout: 'horizontal',
|
|
30
|
+
border: true,
|
|
31
|
+
fixed: true,
|
|
27
32
|
openSubMenus: false,
|
|
28
33
|
links: [],
|
|
29
34
|
activeLink: {},
|
|
@@ -31,18 +36,25 @@ export const NavListContext = createContext<NavListContextInterface>({
|
|
|
31
36
|
});
|
|
32
37
|
|
|
33
38
|
const TRAILING_SLASH = /\/$/gm;
|
|
34
|
-
export const
|
|
39
|
+
export const NavListProviderAuto: React.FC<NavListContextInterface> = ({
|
|
35
40
|
children,
|
|
36
41
|
layout,
|
|
42
|
+
border,
|
|
43
|
+
fixed,
|
|
37
44
|
openSubMenus = false,
|
|
38
45
|
showDividers = false,
|
|
39
46
|
links = [],
|
|
40
47
|
}) => {
|
|
41
48
|
const [activeSubMenu, setActiveSubMenu] = useState<NavLinkInterface[]>([]);
|
|
42
49
|
const [activeLink, setActiveLink] = useState<NavLinkInterface>({});
|
|
43
|
-
const { container,
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
const { container, registerButton, registerLink } = useNavList();
|
|
51
|
+
|
|
52
|
+
const setRegisterButton = (name: string) => {
|
|
53
|
+
return { ...registerButton(name) };
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const setRegisterLink = (name: string) => {
|
|
57
|
+
return { ...registerLink(name) };
|
|
46
58
|
};
|
|
47
59
|
|
|
48
60
|
// TODO: Cleanup unused props
|
|
@@ -57,7 +69,7 @@ export const NavListProvider: React.FC<NavListContextInterface> = ({
|
|
|
57
69
|
} else {
|
|
58
70
|
return (
|
|
59
71
|
window?.location.pathname.replace(TRAILING_SLASH, '') ===
|
|
60
|
-
|
|
72
|
+
link.href?.replace(TRAILING_SLASH, '') || false
|
|
61
73
|
);
|
|
62
74
|
}
|
|
63
75
|
}) || { label: '', href: '' };
|
|
@@ -76,22 +88,25 @@ export const NavListProvider: React.FC<NavListContextInterface> = ({
|
|
|
76
88
|
};
|
|
77
89
|
|
|
78
90
|
return (
|
|
79
|
-
<
|
|
91
|
+
<NavListContextAuto.Provider
|
|
80
92
|
value={{
|
|
81
93
|
openSubMenus,
|
|
82
94
|
layout,
|
|
95
|
+
border,
|
|
96
|
+
fixed,
|
|
83
97
|
showDividers,
|
|
84
98
|
links,
|
|
85
99
|
activeLink,
|
|
86
100
|
activeSubMenu,
|
|
87
101
|
onSubMenuActive,
|
|
88
102
|
container,
|
|
89
|
-
|
|
103
|
+
setRegisterButton,
|
|
104
|
+
setRegisterLink,
|
|
90
105
|
}}
|
|
91
106
|
>
|
|
92
107
|
{children}
|
|
93
|
-
</
|
|
108
|
+
</NavListContextAuto.Provider>
|
|
94
109
|
);
|
|
95
110
|
};
|
|
96
111
|
|
|
97
|
-
export default
|
|
112
|
+
export default NavListContextAuto;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { NavListItemLink } from '@digigov/ui/core/NavList/NavListItemLink';
|
|
3
|
+
import NavListContextAuto from '@digigov/ui/core/NavList/NavListAuto/NavListContextAuto';
|
|
4
|
+
import NavListItem from '@digigov/react-core/NavListItem';
|
|
5
|
+
import { NavListLayout } from '@digigov/ui/core/NavList/types';
|
|
6
|
+
|
|
7
|
+
interface NavListItemAnchorAutoProps {
|
|
8
|
+
name: string;
|
|
9
|
+
href?: string;
|
|
10
|
+
active?: boolean;
|
|
11
|
+
layout?: NavListLayout;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const NavListItemAnchorAuto: React.FC<NavListItemAnchorAutoProps> = ({
|
|
16
|
+
name,
|
|
17
|
+
href,
|
|
18
|
+
active,
|
|
19
|
+
layout,
|
|
20
|
+
children,
|
|
21
|
+
...props
|
|
22
|
+
}) => {
|
|
23
|
+
const { container, setRegisterLink } = useContext(NavListContextAuto);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<NavListItem layout={layout}>
|
|
27
|
+
{setRegisterLink && (
|
|
28
|
+
<NavListItemLink
|
|
29
|
+
href={href}
|
|
30
|
+
active={active || (container && container(name)?.active)}
|
|
31
|
+
{...props}
|
|
32
|
+
{...setRegisterLink(name)}
|
|
33
|
+
>
|
|
34
|
+
{children}
|
|
35
|
+
</NavListItemLink>
|
|
36
|
+
)}
|
|
37
|
+
</NavListItem>
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default NavListItemAnchorAuto;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import Divider from '@digigov/react-core/SectionBreak';
|
|
3
|
+
import NavListContextAuto from '@digigov/ui/core/NavList/NavListAuto/NavListContextAuto';
|
|
4
|
+
import NavItemAnchorAuto from '@digigov/ui/core/NavList/NavListAuto/NavListItemAnchorAuto';
|
|
5
|
+
import NavItemButtonAuto from '@digigov/ui/core/NavList/NavListAuto/NavListItemButtonAuto';
|
|
6
|
+
import { NavListItem } from '@digigov/ui/core/NavList/NavListItem';
|
|
7
|
+
|
|
8
|
+
export interface NavListItemAutoProps {
|
|
9
|
+
item?: any;
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
role?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const NavListItemAuto: React.FC<NavListItemAutoProps> = ({
|
|
15
|
+
item,
|
|
16
|
+
children,
|
|
17
|
+
role,
|
|
18
|
+
...props
|
|
19
|
+
}) => {
|
|
20
|
+
const { layout, showDividers, container, setRegisterButton } = useContext(
|
|
21
|
+
NavListContextAuto
|
|
22
|
+
);
|
|
23
|
+
const itemName = item?.name ? item.name : item?.label;
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<React.Fragment>
|
|
27
|
+
{children ? (
|
|
28
|
+
<NavListItem layout={layout} {...props}>
|
|
29
|
+
{children}
|
|
30
|
+
</NavListItem>
|
|
31
|
+
) : item?.menu || item?.subMenu ? (
|
|
32
|
+
<NavItemButtonAuto
|
|
33
|
+
item={item}
|
|
34
|
+
name={itemName}
|
|
35
|
+
active={container && container(itemName)?.active}
|
|
36
|
+
onSelect={setRegisterButton}
|
|
37
|
+
layout={layout}
|
|
38
|
+
>
|
|
39
|
+
{item?.label}
|
|
40
|
+
</NavItemButtonAuto>
|
|
41
|
+
) : (
|
|
42
|
+
<NavItemAnchorAuto href={item?.href} name={itemName} layout={layout}>
|
|
43
|
+
{item?.label}
|
|
44
|
+
</NavItemAnchorAuto>
|
|
45
|
+
)}
|
|
46
|
+
{showDividers && <Divider />}
|
|
47
|
+
</React.Fragment>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default NavListItemAuto;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import NavListItemButton from '@digigov/ui/core/NavList/NavListItemButton';
|
|
3
|
+
import NavItemSubMenuAuto from '@digigov/ui/core/NavList/NavListAuto/NavListSubMenuAuto';
|
|
4
|
+
import NavItemMenuAuto from '@digigov/ui/core/NavList/NavListAuto/NavListMenuAuto';
|
|
5
|
+
import NavListItem from '@digigov/ui/core/NavList/NavListItem';
|
|
6
|
+
import { NavListLayout } from '@digigov/ui/core/NavList/types';
|
|
7
|
+
|
|
8
|
+
interface NavListItemButtonAutoProps {
|
|
9
|
+
item?: any;
|
|
10
|
+
name: string;
|
|
11
|
+
active?: boolean;
|
|
12
|
+
onSelect?: (name: string) => any;
|
|
13
|
+
layout?: NavListLayout;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const NavListItemButtonAuto: React.FC<NavListItemButtonAutoProps> = ({
|
|
18
|
+
item,
|
|
19
|
+
name,
|
|
20
|
+
active,
|
|
21
|
+
onSelect,
|
|
22
|
+
layout,
|
|
23
|
+
children,
|
|
24
|
+
}) => {
|
|
25
|
+
return (
|
|
26
|
+
<React.Fragment>
|
|
27
|
+
{onSelect && (
|
|
28
|
+
<NavListItem layout={layout}>
|
|
29
|
+
<NavListItemButton active={active} {...onSelect(name)}>
|
|
30
|
+
{children}
|
|
31
|
+
</NavListItemButton>
|
|
32
|
+
</NavListItem>
|
|
33
|
+
)}
|
|
34
|
+
{item?.subMenu ? (
|
|
35
|
+
<NavItemSubMenuAuto
|
|
36
|
+
items={item?.subMenu}
|
|
37
|
+
open={active}
|
|
38
|
+
layout={layout}
|
|
39
|
+
/>
|
|
40
|
+
) : (
|
|
41
|
+
<NavItemMenuAuto
|
|
42
|
+
subMenu={item?.menu?.links}
|
|
43
|
+
title={item?.menu?.title}
|
|
44
|
+
active={active}
|
|
45
|
+
layout={layout}
|
|
46
|
+
id={name}
|
|
47
|
+
/>
|
|
48
|
+
)}
|
|
49
|
+
</React.Fragment>
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default NavListItemButtonAuto;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { NavListLayout } from '@digigov/ui/core/NavList/types';
|
|
3
|
+
import NavMenu from '@digigov/ui/core/NavList/NavMenu';
|
|
4
|
+
import NavMenuContainer from '@digigov/ui/core/NavList/NavMenuContainer';
|
|
5
|
+
import NavMenuContainerTitle from '@digigov/ui/core/NavList/NavMenuContainerTitle';
|
|
6
|
+
import NavMenuContainerContent from '@digigov/ui/core/NavList/NavMenuContainerContent';
|
|
7
|
+
import NavMenuContainerContentList from '@digigov/ui/core/NavList/NavMenuContainerContentList';
|
|
8
|
+
import NavMenuContainerContentListItem from '@digigov/ui/core/NavList/NavMenuContainerContentListItem';
|
|
9
|
+
import { Link } from '@digigov/ui/core';
|
|
10
|
+
|
|
11
|
+
interface NavListMenuAutoProps {
|
|
12
|
+
layout?: NavListLayout;
|
|
13
|
+
title?: string;
|
|
14
|
+
active?: boolean;
|
|
15
|
+
subMenu?: any[];
|
|
16
|
+
id?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const NavListMenuAuto: React.FC<NavListMenuAutoProps> = ({
|
|
20
|
+
layout,
|
|
21
|
+
active,
|
|
22
|
+
title,
|
|
23
|
+
subMenu,
|
|
24
|
+
id,
|
|
25
|
+
}) => {
|
|
26
|
+
return (
|
|
27
|
+
<NavMenu layout={layout} active={active} id={id}>
|
|
28
|
+
<NavMenuContainer layout={layout} paddingLeft={5} paddingRight={5}>
|
|
29
|
+
<NavMenuContainerTitle layout={layout}>{title}</NavMenuContainerTitle>
|
|
30
|
+
<NavMenuContainerContent>
|
|
31
|
+
<NavMenuContainerContentList role="menu" layout={layout}>
|
|
32
|
+
{subMenu?.map((item, index) => {
|
|
33
|
+
return (
|
|
34
|
+
<NavMenuContainerContentListItem
|
|
35
|
+
role="presentation"
|
|
36
|
+
key={index}
|
|
37
|
+
>
|
|
38
|
+
<Link role="menuitem" id={item.name} href={item.href}>
|
|
39
|
+
{item.label}
|
|
40
|
+
</Link>
|
|
41
|
+
</NavMenuContainerContentListItem>
|
|
42
|
+
);
|
|
43
|
+
})}
|
|
44
|
+
</NavMenuContainerContentList>
|
|
45
|
+
</NavMenuContainerContent>
|
|
46
|
+
</NavMenuContainer>
|
|
47
|
+
</NavMenu>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default NavListMenuAuto;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Nav } from '@digigov/ui/core/NavList/Nav';
|
|
3
|
+
import { NavList } from '@digigov/ui/core/NavList/NavList';
|
|
4
|
+
import NavItemAuto from '@digigov/ui/core/NavList/NavListAuto/NavListItemAuto';
|
|
5
|
+
import { NavListLayout } from '@digigov/ui/core/NavList/types';
|
|
6
|
+
|
|
7
|
+
export interface NavListSubMenuAutoProps {
|
|
8
|
+
items?: any[];
|
|
9
|
+
open?: boolean;
|
|
10
|
+
layout?: NavListLayout;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const NavListSubMenuAuto: React.FC<NavListSubMenuAutoProps> = ({
|
|
14
|
+
items,
|
|
15
|
+
open,
|
|
16
|
+
layout,
|
|
17
|
+
...props
|
|
18
|
+
}) => {
|
|
19
|
+
return open ? (
|
|
20
|
+
<Nav hidden={!open} layout={layout} {...props} aria-orientation={layout}>
|
|
21
|
+
<NavList layout={layout}>
|
|
22
|
+
{items?.map((subMenuItem, index) => (
|
|
23
|
+
<NavItemAuto key={index} item={subMenuItem} />
|
|
24
|
+
))}
|
|
25
|
+
</NavList>
|
|
26
|
+
</Nav>
|
|
27
|
+
) : (
|
|
28
|
+
<></>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default NavListSubMenuAuto;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import NavListItemContainer from '@digigov/react-core/NavListItem';
|
|
3
3
|
import NavListItemButton from '@digigov/ui/core/NavList/NavListItemButton';
|
|
4
4
|
import { NavListItemLink } from '@digigov/ui/core/NavList/NavListItemLink';
|
|
5
5
|
import {
|
|
@@ -11,29 +11,35 @@ import {
|
|
|
11
11
|
export const NavListItem: React.FC<NavListItemProps> = ({
|
|
12
12
|
link,
|
|
13
13
|
layout,
|
|
14
|
-
|
|
14
|
+
setRegisterButton,
|
|
15
|
+
setRegisterLink,
|
|
15
16
|
active,
|
|
16
17
|
children,
|
|
17
18
|
...props
|
|
18
19
|
}) => {
|
|
19
20
|
return (
|
|
20
|
-
<
|
|
21
|
+
<NavListItemContainer layout={layout} {...props}>
|
|
21
22
|
{children ? (
|
|
22
23
|
children
|
|
23
|
-
) : isNavListItemSubMenuInterface(link) &&
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
) : isNavListItemSubMenuInterface(link) && link?.subMenu ? (
|
|
25
|
+
<NavListItemButton
|
|
26
|
+
{...(setRegisterButton && setRegisterButton(link.name))}
|
|
27
|
+
>
|
|
27
28
|
{link?.label}
|
|
28
29
|
</NavListItemButton>
|
|
29
30
|
) : (
|
|
30
31
|
isNavListItemLinkInterface(link) && (
|
|
31
|
-
<NavListItemLink
|
|
32
|
+
<NavListItemLink
|
|
33
|
+
href={link?.href}
|
|
34
|
+
{...(setRegisterLink && setRegisterLink(link.name))}
|
|
35
|
+
active={active}
|
|
36
|
+
{...props}
|
|
37
|
+
>
|
|
32
38
|
{link?.label}
|
|
33
39
|
</NavListItemLink>
|
|
34
40
|
)
|
|
35
41
|
)}
|
|
36
|
-
</
|
|
42
|
+
</NavListItemContainer>
|
|
37
43
|
);
|
|
38
44
|
};
|
|
39
45
|
|
|
@@ -14,7 +14,7 @@ import NavMenuContainerContentListItem from '@digigov/ui/core/NavList/NavMenuCon
|
|
|
14
14
|
|
|
15
15
|
export interface NavListItemBaseProps {
|
|
16
16
|
container?: (key: string) => { active: boolean; id: string };
|
|
17
|
-
|
|
17
|
+
setRegisterButton?: (name: string) => any;
|
|
18
18
|
children?: React.ReactNode;
|
|
19
19
|
item?: any;
|
|
20
20
|
layout?: NavListLayout;
|
|
@@ -23,7 +23,7 @@ export interface NavListItemBaseProps {
|
|
|
23
23
|
|
|
24
24
|
export const NavListItemBase: React.FC<NavListItemBaseProps> = ({
|
|
25
25
|
container,
|
|
26
|
-
|
|
26
|
+
setRegisterButton,
|
|
27
27
|
children,
|
|
28
28
|
item,
|
|
29
29
|
layout = 'horizontal',
|
|
@@ -35,7 +35,7 @@ export const NavListItemBase: React.FC<NavListItemBaseProps> = ({
|
|
|
35
35
|
<NavListItem
|
|
36
36
|
layout={layout}
|
|
37
37
|
link={item}
|
|
38
|
-
|
|
38
|
+
setRegisterButton={setRegisterButton}
|
|
39
39
|
role="menuitem"
|
|
40
40
|
{...props}
|
|
41
41
|
/>
|
|
@@ -1,3 +1,65 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import NavMenuContainerContentListWrapper, {
|
|
3
|
+
NavMenuContainerContentListProps,
|
|
4
|
+
} from '@digigov/react-core/NavMenuContainerContentList';
|
|
2
5
|
export * from '@digigov/react-core/NavMenuContainerContentList';
|
|
6
|
+
|
|
7
|
+
const focusNavListItem = (e, nextItemIndex) => {
|
|
8
|
+
e.preventDefault();
|
|
9
|
+
const id = document.activeElement?.id;
|
|
10
|
+
const menuItems = Array.from(
|
|
11
|
+
e.currentTarget.querySelectorAll(`[role=menuitem]`)
|
|
12
|
+
);
|
|
13
|
+
const currentItem = menuItems.findIndex(
|
|
14
|
+
(x) => (x as HTMLElement).getAttribute('id') === document.activeElement?.id
|
|
15
|
+
);
|
|
16
|
+
if (
|
|
17
|
+
currentItem + nextItemIndex > -1 &&
|
|
18
|
+
currentItem + nextItemIndex < menuItems.length
|
|
19
|
+
) {
|
|
20
|
+
(menuItems[currentItem + nextItemIndex] as HTMLElement)?.focus();
|
|
21
|
+
} else {
|
|
22
|
+
const menuElement = Array.from(
|
|
23
|
+
document.querySelectorAll(`[aria-controls]`)
|
|
24
|
+
);
|
|
25
|
+
const currentItem = menuElement.findIndex((x) =>
|
|
26
|
+
id?.includes(x.getAttribute('aria-controls') || '')
|
|
27
|
+
);
|
|
28
|
+
if (nextItemIndex > 0) {
|
|
29
|
+
(menuElement[currentItem + nextItemIndex] as HTMLElement)?.focus();
|
|
30
|
+
} else {
|
|
31
|
+
(menuElement[currentItem] as HTMLElement)?.focus();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const NavMenuContainerContentList: React.FC<NavMenuContainerContentListProps> = ({
|
|
37
|
+
layout,
|
|
38
|
+
children,
|
|
39
|
+
...props
|
|
40
|
+
}) => {
|
|
41
|
+
return (
|
|
42
|
+
<NavMenuContainerContentListWrapper
|
|
43
|
+
layout={layout}
|
|
44
|
+
{...props}
|
|
45
|
+
onKeyDown={(event) => {
|
|
46
|
+
switch (event.key) {
|
|
47
|
+
case 'ArrowDown':
|
|
48
|
+
case 'ArrowRight':
|
|
49
|
+
focusNavListItem(event, 1);
|
|
50
|
+
break;
|
|
51
|
+
case 'ArrowUp':
|
|
52
|
+
case 'ArrowLeft':
|
|
53
|
+
focusNavListItem(event, -1);
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}}
|
|
59
|
+
>
|
|
60
|
+
{children}
|
|
61
|
+
</NavMenuContainerContentListWrapper>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
|
|
3
65
|
export default NavMenuContainerContentList;
|
|
@@ -46,21 +46,27 @@ const links = [
|
|
|
46
46
|
|
|
47
47
|
export const Default = () => {
|
|
48
48
|
const layout = 'vertical';
|
|
49
|
-
const
|
|
49
|
+
const border = false;
|
|
50
|
+
const { container, registerButton, registerLink } = useNavList();
|
|
50
51
|
|
|
51
|
-
const
|
|
52
|
-
return { ...
|
|
52
|
+
const setRegisterButton = (name: string) => {
|
|
53
|
+
return { ...registerButton(name) };
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const setRegisterLink = (name: string) => {
|
|
57
|
+
return { ...registerLink(name) };
|
|
53
58
|
};
|
|
54
59
|
|
|
55
60
|
return (
|
|
56
|
-
<Nav open={true} layout={layout}>
|
|
61
|
+
<Nav open={true} layout={layout} border={border} aria-orientation={layout}>
|
|
57
62
|
<NavList layout={layout}>
|
|
58
63
|
{links.map((item, key) => (
|
|
59
64
|
<React.Fragment key={key}>
|
|
60
65
|
<NavListItem
|
|
61
66
|
layout={layout}
|
|
62
67
|
link={item}
|
|
63
|
-
|
|
68
|
+
setRegisterButton={setRegisterButton}
|
|
69
|
+
setRegisterLink={setRegisterLink}
|
|
64
70
|
/>
|
|
65
71
|
<NavMenu layout={layout} {...container(item.name)}>
|
|
66
72
|
<NavMenuContainer
|
|
@@ -72,12 +78,21 @@ export const Default = () => {
|
|
|
72
78
|
{item.label}
|
|
73
79
|
</NavMenuContainerTitle>
|
|
74
80
|
<NavMenuContainerContent>
|
|
75
|
-
<NavMenuContainerContentList layout={layout}>
|
|
81
|
+
<NavMenuContainerContentList role="menu" layout={layout}>
|
|
76
82
|
{item.subMenu?.map((subMenu, menuIndex) => {
|
|
77
83
|
return (
|
|
78
84
|
isNavListItemLinkInterface(subMenu) && (
|
|
79
|
-
<NavMenuContainerContentListItem
|
|
80
|
-
|
|
85
|
+
<NavMenuContainerContentListItem
|
|
86
|
+
key={menuIndex}
|
|
87
|
+
role="presentation"
|
|
88
|
+
>
|
|
89
|
+
<Link
|
|
90
|
+
role="menuitem"
|
|
91
|
+
id={subMenu.name}
|
|
92
|
+
href={subMenu.href}
|
|
93
|
+
>
|
|
94
|
+
{subMenu.label}
|
|
95
|
+
</Link>
|
|
81
96
|
</NavMenuContainerContentListItem>
|
|
82
97
|
)
|
|
83
98
|
);
|
|
@@ -42,20 +42,27 @@ const links = [
|
|
|
42
42
|
|
|
43
43
|
export const NavHorizontalLayout = () => {
|
|
44
44
|
const layout = 'horizontal';
|
|
45
|
-
const
|
|
45
|
+
const border = true;
|
|
46
|
+
const { container, registerButton, registerLink } = useNavList();
|
|
46
47
|
|
|
47
|
-
const
|
|
48
|
-
return { ...
|
|
48
|
+
const setRegisterButton = (name: string) => {
|
|
49
|
+
return { ...registerButton(name) };
|
|
49
50
|
};
|
|
51
|
+
|
|
52
|
+
const setRegisterLink = (name: string) => {
|
|
53
|
+
return { ...registerLink(name) };
|
|
54
|
+
};
|
|
55
|
+
|
|
50
56
|
return (
|
|
51
|
-
<Nav open={true} layout={layout}>
|
|
57
|
+
<Nav open={true} layout={layout} border={border}>
|
|
52
58
|
<NavList layout={layout}>
|
|
53
59
|
{links.map((item, key) => (
|
|
54
60
|
<React.Fragment key={key}>
|
|
55
61
|
<NavListItem
|
|
56
62
|
layout={layout}
|
|
57
63
|
link={item}
|
|
58
|
-
|
|
64
|
+
setRegisterButton={setRegisterButton}
|
|
65
|
+
setRegisterLink={setRegisterLink}
|
|
59
66
|
/>
|
|
60
67
|
<NavMenu layout={layout} {...container(item.name)}>
|
|
61
68
|
<NavMenuContainer
|
|
@@ -67,12 +74,21 @@ export const NavHorizontalLayout = () => {
|
|
|
67
74
|
{item.label}
|
|
68
75
|
</NavMenuContainerTitle>
|
|
69
76
|
<NavMenuContainerContent>
|
|
70
|
-
<NavMenuContainerContentList layout={layout}>
|
|
77
|
+
<NavMenuContainerContentList role="menu" layout={layout}>
|
|
71
78
|
{item.subMenu?.map((subMenu, menuIndex) => {
|
|
72
79
|
return (
|
|
73
80
|
isNavListItemLinkInterface(subMenu) && (
|
|
74
|
-
<NavMenuContainerContentListItem
|
|
75
|
-
|
|
81
|
+
<NavMenuContainerContentListItem
|
|
82
|
+
role="presentation"
|
|
83
|
+
key={menuIndex}
|
|
84
|
+
>
|
|
85
|
+
<Link
|
|
86
|
+
role="menuitem"
|
|
87
|
+
id={subMenu.name}
|
|
88
|
+
href={subMenu.href}
|
|
89
|
+
>
|
|
90
|
+
{subMenu.label}
|
|
91
|
+
</Link>
|
|
76
92
|
</NavMenuContainerContentListItem>
|
|
77
93
|
)
|
|
78
94
|
);
|