From f43f684b5cbc70fa3dd4b607d9cbe08ad4c59fb8 Mon Sep 17 00:00:00 2001 From: Marcus Feitoza Date: Sun, 5 Apr 2020 01:18:08 -0300 Subject: [PATCH] feat(uishell): nav --- src/components/UIShell/UIShell.Story.svelte | 20 ++++++- src/components/UIShell/UIShell.stories.js | 10 ++++ src/components/UIShell/UIShell.svelte | 1 + .../UIShell/UIShellNav/UIShellNav.svelte | 10 ++++ .../UIShell/UIShellNav/UIShellNavItem.svelte | 23 ++++++++ .../UIShellNav/UIShellNavSubmenu.svelte | 54 +++++++++++++++++++ src/components/UIShell/index.js | 3 ++ src/index.js | 8 ++- 8 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 src/components/UIShell/UIShellNav/UIShellNav.svelte create mode 100644 src/components/UIShell/UIShellNav/UIShellNavItem.svelte create mode 100644 src/components/UIShell/UIShellNav/UIShellNavSubmenu.svelte diff --git a/src/components/UIShell/UIShell.Story.svelte b/src/components/UIShell/UIShell.Story.svelte index 1faeb0a7..d57734fe 100644 --- a/src/components/UIShell/UIShell.Story.svelte +++ b/src/components/UIShell/UIShell.Story.svelte @@ -11,6 +11,9 @@ import SideNavMenu from './SideNav/SideNavMenu.svelte'; import SideNavMenuItem from './SideNav/SideNavMenuItem.svelte'; import SideNavLink from './SideNav/SideNavLink.svelte'; + import UIShellNav from './UIShellNav/UIShellNav.svelte'; + import UIShellNavItem from './UIShellNav/UIShellNavItem.svelte'; + import UIShellNavSubmenu from './UIShellNav/UIShellNavSubmenu.svelte'; let iCatalog = { class: undefined, @@ -43,7 +46,22 @@ }; -{#if story === 'with-actions-sidenav'} +{#if story === 'with-nav'} + +
+ + + + + + + + + + +
+
+{:else if story === 'with-actions-sidenav'}
diff --git a/src/components/UIShell/UIShell.stories.js b/src/components/UIShell/UIShell.stories.js index 7ffc13fc..1e485083 100644 --- a/src/components/UIShell/UIShell.stories.js +++ b/src/components/UIShell/UIShell.stories.js @@ -3,6 +3,16 @@ import Component from './UIShell.Story.svelte'; export default { title: 'UIShell', decorators: [withKnobs] }; +export const WithNav = () => ({ + Component, + props: { + story: 'with-nav', + href: text('The link href (href)', '#'), + company: text('Company name', 'IBM'), + platformName: text('Platform name', 'Platform Name') + } +}); + export const WithActionsAndSidenav = () => ({ Component, props: { diff --git a/src/components/UIShell/UIShell.svelte b/src/components/UIShell/UIShell.svelte index b77a666f..94056266 100644 --- a/src/components/UIShell/UIShell.svelte +++ b/src/components/UIShell/UIShell.svelte @@ -24,5 +24,6 @@ {company}  {platformName} + diff --git a/src/components/UIShell/UIShellNav/UIShellNav.svelte b/src/components/UIShell/UIShellNav/UIShellNav.svelte new file mode 100644 index 00000000..1080216b --- /dev/null +++ b/src/components/UIShell/UIShellNav/UIShellNav.svelte @@ -0,0 +1,10 @@ + + + diff --git a/src/components/UIShell/UIShellNav/UIShellNavItem.svelte b/src/components/UIShell/UIShellNav/UIShellNavItem.svelte new file mode 100644 index 00000000..611fbf0d --- /dev/null +++ b/src/components/UIShell/UIShellNav/UIShellNavItem.svelte @@ -0,0 +1,23 @@ + + +
  • + + {text} + +
  • diff --git a/src/components/UIShell/UIShellNav/UIShellNavSubmenu.svelte b/src/components/UIShell/UIShellNav/UIShellNavSubmenu.svelte new file mode 100644 index 00000000..b00da895 --- /dev/null +++ b/src/components/UIShell/UIShellNav/UIShellNavSubmenu.svelte @@ -0,0 +1,54 @@ + + + + +
  • + { + if (key === 'Enter') { + expanded = !expanded; + } + }} + on:click + on:mouseover + on:mouseenter + on:mouseleave + on:keyup + on:focus + on:blur> + {text} + + + +
  • diff --git a/src/components/UIShell/index.js b/src/components/UIShell/index.js index 5f1c33af..3d65b23b 100644 --- a/src/components/UIShell/index.js +++ b/src/components/UIShell/index.js @@ -7,3 +7,6 @@ export { default as SideNavItems } from './SideNav/SideNavItems.svelte'; export { default as SideNavLink } from './SideNav/SideNavLink.svelte'; export { default as SideNavMenu } from './SideNav/SideNavMenu.svelte'; export { default as SideNavMenuItem } from './SideNav/SideNavMenuItem.svelte'; +export { default as UIShellNav } from './UIShellShellNav/UIShellNav.svelte'; +export { default as UIShellNavItem } from './UIShellShellNav/UIShellNavItem.svelte'; +export { default as UIShellNavSubMenu } from './UIShellShellNav/UIShellNavSubMenu.svelte'; diff --git a/src/index.js b/src/index.js index 3a9f6424..5bf4bd4a 100644 --- a/src/index.js +++ b/src/index.js @@ -83,7 +83,10 @@ import UIShell, { SideNavItems, SideNavLink, SideNavMenu, - SideNavMenuItem + SideNavMenuItem, + UIShellNav, + UIShellNavItem, + UIShellNavSubMenu } from './components/UIShell'; import UnorderedList from './components/UnorderedList'; @@ -205,5 +208,8 @@ export { SideNavLink, SideNavMenu, SideNavMenuItem, + UIShellNav, + UIShellNavItem, + UIShellNavSubMenu, UnorderedList };