feat(ui-shell): add Content, SkipToContent components

This commit is contained in:
Eric Liu 2020-07-17 12:25:10 -07:00
commit 40dc2bf61e
5 changed files with 68 additions and 40 deletions

View file

@ -0,0 +1,7 @@
<script>
export let id = "main-content";
</script>
<main {...$$props} {id} class:bx--content={true}>
<slot />
</main>

View file

@ -0,0 +1,8 @@
<script>
export let href = "#main-content";
export let tabindex = "0";
</script>
<a {...$$props} class:bx--skip-to-content={true} {href} {tabindex} on:click>
<slot>Skip to main content</slot>
</a>

View file

@ -1,30 +1,32 @@
<script> <script>
export let story = undefined; export let story = undefined;
import SettingsAdjust20 from 'carbon-icons-svelte/lib/SettingsAdjust20'; import SettingsAdjust20 from "carbon-icons-svelte/lib/SettingsAdjust20";
import Help20 from 'carbon-icons-svelte/lib/Help20'; import Help20 from "carbon-icons-svelte/lib/Help20";
import ChangeCatalog16 from 'carbon-icons-svelte/lib/ChangeCatalog16'; import ChangeCatalog16 from "carbon-icons-svelte/lib/ChangeCatalog16";
import ManageProtection16 from 'carbon-icons-svelte/lib/ManageProtection16'; import ManageProtection16 from "carbon-icons-svelte/lib/ManageProtection16";
import Notification20 from 'carbon-icons-svelte/lib/Notification20'; import Notification20 from "carbon-icons-svelte/lib/Notification20";
import UserAvatar20 from 'carbon-icons-svelte/lib/UserAvatar20'; import UserAvatar20 from "carbon-icons-svelte/lib/UserAvatar20";
import AppSwitcher20 from 'carbon-icons-svelte/lib/AppSwitcher20'; import AppSwitcher20 from "carbon-icons-svelte/lib/AppSwitcher20";
import SideNav from './SideNav/SideNav.svelte'; import SideNav from "./SideNav/SideNav.svelte";
import SideNavItems from './SideNav/SideNavItems.svelte'; import SideNavItems from "./SideNav/SideNavItems.svelte";
import SideNavMenu from './SideNav/SideNavMenu.svelte'; import SideNavMenu from "./SideNav/SideNavMenu.svelte";
import SideNavMenuItem from './SideNav/SideNavMenuItem.svelte'; import SideNavMenuItem from "./SideNav/SideNavMenuItem.svelte";
import SideNavLink from './SideNav/SideNavLink.svelte'; import SideNavLink from "./SideNav/SideNavLink.svelte";
import Header from './GlobalHeader/Header.svelte'; import Header from "./GlobalHeader/Header.svelte";
import HeaderNav from './GlobalHeader/HeaderNav.svelte'; import HeaderNav from "./GlobalHeader/HeaderNav.svelte";
import HeaderNavItem from './GlobalHeader/HeaderNavItem.svelte'; import HeaderNavItem from "./GlobalHeader/HeaderNavItem.svelte";
import HeaderNavMenu from './GlobalHeader/HeaderNavMenu.svelte'; import HeaderNavMenu from "./GlobalHeader/HeaderNavMenu.svelte";
import HeaderUtilities from './GlobalHeader/HeaderUtilities.svelte'; import HeaderUtilities from "./GlobalHeader/HeaderUtilities.svelte";
import HeaderActionSearch from './GlobalHeader/HeaderActionSearch.svelte'; import HeaderActionSearch from "./GlobalHeader/HeaderActionSearch.svelte";
import HeaderActionLink from './GlobalHeader/HeaderActionLink.svelte'; import HeaderActionLink from "./GlobalHeader/HeaderActionLink.svelte";
import HeaderAction from './GlobalHeader/HeaderAction.svelte'; import HeaderAction from "./GlobalHeader/HeaderAction.svelte";
import HeaderPanelDivider from './GlobalHeader/HeaderPanelDivider.svelte'; import HeaderPanelDivider from "./GlobalHeader/HeaderPanelDivider.svelte";
import HeaderPanelLink from './GlobalHeader/HeaderPanelLink.svelte'; import HeaderPanelLink from "./GlobalHeader/HeaderPanelLink.svelte";
import HeaderPanelLinks from './GlobalHeader/HeaderPanelLinks.svelte'; import HeaderPanelLinks from "./GlobalHeader/HeaderPanelLinks.svelte";
import Content from "./Content.svelte";
import SkipToContent from "./SkipToContent.svelte";
let isSideNavOpen = undefined; let isSideNavOpen = undefined;
@ -32,8 +34,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: ChangeCatalog16, render: ChangeCatalog16,
title: 'Catalog', title: "Catalog",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -42,8 +44,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: Help20, render: Help20,
title: 'Help', title: "Help",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -52,8 +54,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: SettingsAdjust20, render: SettingsAdjust20,
title: 'Catalog', title: "Catalog",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -62,8 +64,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: ManageProtection16, render: ManageProtection16,
title: 'Catalog', title: "Catalog",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -72,8 +74,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: AppSwitcher20, render: AppSwitcher20,
title: 'App Switcher', title: "App Switcher",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -82,8 +84,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: UserAvatar20, render: UserAvatar20,
title: 'Account', title: "Account",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -92,8 +94,8 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: Notification20, render: Notification20,
title: 'Notifications', title: "Notifications",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
@ -102,15 +104,17 @@
class: undefined, class: undefined,
skeleton: false, skeleton: false,
render: SettingsAdjust20, render: SettingsAdjust20,
title: 'Settings', title: "Settings",
tabindex: '0', tabindex: "0",
focusable: false, focusable: false,
style: undefined style: undefined
}; };
</script> </script>
{#if story === 'header'} {#if story === 'header'}
<Header {...$$props} /> <Header {...$$props}>
<SkipToContent />
</Header>
{:else if story === 'sidenav'} {:else if story === 'sidenav'}
<SideNav isOpen={true}> <SideNav isOpen={true}>
<SideNavItems> <SideNavItems>
@ -197,3 +201,6 @@
</SideNavItems> </SideNavItems>
</SideNav> </SideNav>
{/if} {/if}
<Content>
<h2>Page Title</h2>
</Content>

View file

@ -14,3 +14,5 @@ export { default as SideNavItems } from './SideNav/SideNavItems.svelte';
export { default as SideNavLink } from './SideNav/SideNavLink.svelte'; export { default as SideNavLink } from './SideNav/SideNavLink.svelte';
export { default as SideNavMenu } from './SideNav/SideNavMenu.svelte'; export { default as SideNavMenu } from './SideNav/SideNavMenu.svelte';
export { default as SideNavMenuItem } from './SideNav/SideNavMenuItem.svelte'; export { default as SideNavMenuItem } from './SideNav/SideNavMenuItem.svelte';
export { default as Content } from './Content.svelte';
export { default as SkipToContent } from './SkipToContent.svelte';

View file

@ -126,6 +126,8 @@ import {
SideNavLink, SideNavLink,
SideNavMenu, SideNavMenu,
SideNavMenuItem, SideNavMenuItem,
Content,
SkipToContent,
} from "./components/UIShell"; } from "./components/UIShell";
import UnorderedList from "./components/UnorderedList"; import UnorderedList from "./components/UnorderedList";
@ -266,4 +268,6 @@ export {
SideNavMenu, SideNavMenu,
SideNavMenuItem, SideNavMenuItem,
UnorderedList, UnorderedList,
Content,
SkipToContent,
}; };