UNPKG

@workday/canvas-kit-docs

Version:

Documentation components of Canvas Kit components

47 lines (46 loc) 2.75 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import React from 'react'; import { SecondaryButton, TertiaryButton } from '@workday/canvas-kit-react/button'; import { Flex, Grid } from '@workday/canvas-kit-react/layout'; import { Heading } from '@workday/canvas-kit-react/text'; import { createStencil, createStyles, px2rem } from '@workday/canvas-kit-styling'; import { system } from '@workday/canvas-tokens-web'; import { GlobalHeader } from '../GlobalHeader'; import { SideBarContent } from '../SidePanelWithNavigation'; import { BreadcrumbNavRegion } from './BreadcrumbNavRegion'; const gridLayoutStyles = createStyles({ gridTemplateAreas: `'Header Header Header Header' 'SideBar BodyContent BodyContent BodyContent' 'Footer Footer Footer Footer'`, gridGap: system.gap.md, gridTemplateColumns: '1fr 9fr', gridTemplateRows: `auto ${px2rem(800)} auto`, }); const regionStencil = createStencil({ vars: { gridArea: '', }, base: ({ gridArea }) => ({ border: `${px2rem(1)} solid ${system.color.border.contrast.default}`, borderRadius: system.shape.md, padding: system.padding.md, gridArea, }), }); const verticalFlexStyles = createStyles({ flexDirection: 'column', gap: system.gap.md, }); const headingStyles = createStyles({ margin: '0', }); export const FullPageDemo = () => { const [notifications, setNotifications] = React.useState(0); function handleAdd() { setNotifications(prev => prev + 1); } function handleClear() { setNotifications(0); } return (_jsxs(Grid, { cs: gridLayoutStyles, children: [_jsx(Grid, { as: "header", cs: regionStencil({ gridArea: 'Header' }), children: _jsx(GlobalHeader, { notifications: notifications }) }), _jsx(Grid, { as: "nav", cs: regionStencil({ gridArea: 'SideBar' }), children: _jsx(Flex, { cs: verticalFlexStyles, children: _jsx(SideBarContent, {}) }) }), _jsx(Grid, { as: "main", cs: regionStencil({ gridArea: 'BodyContent' }), children: _jsxs(Flex, { cs: verticalFlexStyles, children: [_jsx(BreadcrumbNavRegion, {}), _jsxs(Flex, { cs: { gap: system.gap.md }, children: [_jsx(SecondaryButton, { onClick: handleAdd, children: "Add notification" }), _jsx(TertiaryButton, { onClick: handleClear, children: "Clear" })] }), _jsx(Heading, { as: "h1", size: "large", cs: headingStyles, children: "Heading Level 1" }), _jsx(Heading, { size: "medium", cs: headingStyles, children: "Heading Level 2" }), _jsx(Heading, { as: "h3", size: "small", cs: headingStyles, children: "Heading Level 3" })] }) }), _jsx(Grid, { as: "footer", cs: regionStencil({ gridArea: 'Footer' }), children: _jsx(Heading, { size: "small", cs: headingStyles, children: "Page Footer" }) })] })); };