Skip to content

Commit

Permalink
docs: simple basic status, account and product switcher docs (#3255)
Browse files Browse the repository at this point in the history
* docs: simple basic status, account and product switcher docs

* chore: missing deps

* Apply suggestions from code review

Co-authored-by: Sarah <sali@twilio.com>

* fix: pr feedback and examples improvements

* chore: apply suggestions from code review

Co-authored-by: Sarah <sali@twilio.com>

* chore: status icons and vrt list

* chore: changesets

* chore: escape character

---------

Co-authored-by: Sarah <sali@twilio.com>
  • Loading branch information
SiTaggart and serifluous committed Jun 27, 2023
1 parent a2c1c91 commit 76b28cb
Show file tree
Hide file tree
Showing 22 changed files with 1,014 additions and 130 deletions.
6 changes: 6 additions & 0 deletions .changeset/sixty-taxis-watch.md
@@ -0,0 +1,6 @@
---
'@twilio-paste/status': patch
'@twilio-paste/core': patch
---

[Status] paired iconography should be decorative and paired with visible, descriptive text
2 changes: 2 additions & 0 deletions cypress/integration/sitemap-vrt/constants.ts
Expand Up @@ -15,6 +15,7 @@ export const SITEMAP = [
'/blog/2023-01-27-paste-newsletter/',
'/blog/2023-04-13-paste-newsletter/',
'/blog/2023-06-12-paste-newsletter/',
'/components/account-switcher/',
'/components/aspect-ratio/',
'/components/anchor/',
'/components/alert-dialog/',
Expand Down Expand Up @@ -61,6 +62,7 @@ export const SITEMAP = [
'/components/menu/',
'/components/paragraph/',
'/components/popover/',
'/components/product-switcher/',
'/components/radio-group/',
'/components/radio-button-group/',
'/components/screen-reader-only/',
Expand Down
2 changes: 1 addition & 1 deletion internal-docs/engineering/developer-workflow.md
Expand Up @@ -30,7 +30,7 @@ All our work is stored in Jira and we have an [active sprint](https://issues.cor

We work in 2 week sprints.

Pick a ticket that you feel comfortable working on, assign it to yourself to let others know you’re working on it, and pull it into the “In Progress” column. Try to limit in-progress tickets to 1 or 2 at a time.
Pick a ticket that you feel comfortable working on, assign it to yourself to let others know you’re working on it, and pull it into the “In-progress” column. Try to limit in-progress tickets to 1 or 2 at a time.

## Branching

Expand Down
40 changes: 12 additions & 28 deletions packages/paste-core/components/status/src/constants.tsx
Expand Up @@ -17,78 +17,62 @@ import type {StatusBadges} from './types';
export const StatusObject: StatusBadges = {
ProcessError: {
badgeVariant: 'default',
icon: <ProcessErrorIcon color="colorTextIconError" decorative={false} size="sizeIcon10" title="Error" />,
icon: <ProcessErrorIcon color="colorTextIconError" decorative size="sizeIcon10" />,
color: 'colorTextError',
},
ProcessWarning: {
badgeVariant: 'default',
icon: <ProcessWarningIcon color="colorTextIconWarning" decorative={false} size="sizeIcon10" title="Warning" />,
icon: <ProcessWarningIcon color="colorTextIconWarning" decorative size="sizeIcon10" />,
color: 'colorTextWarning',
},
ProcessSuccess: {
badgeVariant: 'default',
icon: <ProcessSuccessIcon color="colorTextIconSuccess" decorative={false} size="sizeIcon10" title="Success" />,
icon: <ProcessSuccessIcon color="colorTextIconSuccess" decorative size="sizeIcon10" />,
color: 'colorTextSuccess',
},
ProcessNeutral: {
badgeVariant: 'default',
icon: <ProcessNeutralIcon color="colorTextIconNeutral" decorative={false} size="sizeIcon10" title="Neutral" />,
icon: <ProcessNeutralIcon color="colorTextIconNeutral" decorative size="sizeIcon10" />,
color: 'colorTextNeutral',
},
ProcessInProgress: {
badgeVariant: 'default',
icon: (
<ProcessInProgressIcon color="colorTextIconNeutral" decorative={false} size="sizeIcon10" title="In progress" />
),
icon: <ProcessInProgressIcon color="colorTextIconNeutral" decorative size="sizeIcon10" />,
color: 'colorTextNeutral',
},
ProcessDisabled: {
badgeVariant: 'decorative10',
icon: <ProcessDisabledIcon color="colorTextIcon" decorative={false} size="sizeIcon10" title="Disabled" />,
icon: <ProcessDisabledIcon color="colorTextIcon" decorative size="sizeIcon10" />,
color: 'colorTextWeak',
},
ProcessDraft: {
badgeVariant: 'decorative10',
icon: <ProcessDraftIcon color="colorTextIcon" decorative={false} size="sizeIcon10" title="Draft" />,
icon: <ProcessDraftIcon color="colorTextIcon" decorative size="sizeIcon10" />,
color: 'colorTextWeak',
},
ConnectivityAvailable: {
badgeVariant: 'default',
icon: (
<ConnectivityAvailableIcon
color="colorTextIconAvailable"
decorative={false}
size="sizeIcon10"
title="Available"
/>
),
icon: <ConnectivityAvailableIcon color="colorTextIconAvailable" decorative size="sizeIcon10" />,
color: 'colorTextSuccess',
},
ConnectivityBusy: {
badgeVariant: 'default',
icon: <ConnectivityBusyIcon color="colorTextIconBusy" decorative={false} size="sizeIcon10" title="Busy" />,
icon: <ConnectivityBusyIcon color="colorTextIconBusy" decorative size="sizeIcon10" />,
color: 'colorTextWarning',
},
ConnectivityUnavailable: {
badgeVariant: 'default',
icon: (
<ConnectivityUnavailableIcon
color="colorTextIconUnavailable"
decorative={false}
size="sizeIcon10"
title="Unavailable"
/>
),
icon: <ConnectivityUnavailableIcon color="colorTextIconUnavailable" decorative size="sizeIcon10" />,
color: 'colorTextError',
},
ConnectivityNeutral: {
badgeVariant: 'default',
icon: <ConnectivityNeutralIcon color="colorTextIconNeutral" decorative={false} size="sizeIcon10" title="Neutral" />,
icon: <ConnectivityNeutralIcon color="colorTextIconNeutral" decorative size="sizeIcon10" />,
color: 'colorTextNeutral',
},
ConnectivityOffline: {
badgeVariant: 'decorative10',
icon: <ConnectivityOfflineIcon color="colorTextIconOffline" decorative={false} size="sizeIcon10" title="Offline" />,
icon: <ConnectivityOfflineIcon color="colorTextIconOffline" decorative size="sizeIcon10" />,
color: 'colorTextWeak',
},
} as const;
Expand Up @@ -40,7 +40,7 @@ const ProcessStatusMenu: React.FC<React.PropsWithChildren<{variant: StatusMenuBa
<StatusMenuItemChild variant="ProcessError">Error</StatusMenuItemChild>
</StatusMenuItem>
<StatusMenuItem {...menu} onClick={onClick} variant="default">
<StatusMenuItemChild variant="ProcessInProgress">In progress</StatusMenuItemChild>
<StatusMenuItemChild variant="ProcessInProgress">In-progress</StatusMenuItemChild>
</StatusMenuItem>
<StatusMenuItem {...menu} onClick={onClick} variant="default">
<StatusMenuItemChild variant="ProcessDisabled">Disabled</StatusMenuItemChild>
Expand Down Expand Up @@ -201,7 +201,7 @@ const ProcessObject = {
},
InProgress: {
variant: 'ProcessInProgress',
children: 'In progress',
children: 'In-progress',
},
Disabled: {
variant: 'ProcessDisabled',
Expand Down Expand Up @@ -315,7 +315,7 @@ export const Process: StoryFn = () => (
<ProcessStatusMenu variant="ProcessWarning">Warning</ProcessStatusMenu>
<ProcessStatusMenu variant="ProcessSuccess">Success</ProcessStatusMenu>
<ProcessStatusMenu variant="ProcessNeutral">Neutral</ProcessStatusMenu>
<ProcessStatusMenu variant="ProcessInProgress">In Progress</ProcessStatusMenu>
<ProcessStatusMenu variant="ProcessInProgress">In-progress</ProcessStatusMenu>
<ProcessStatusMenu variant="ProcessDisabled">Disabled</ProcessStatusMenu>
<ProcessStatusMenu variant="ProcessDraft">Draft</ProcessStatusMenu>
</Stack>
Expand Down
2 changes: 2 additions & 0 deletions packages/paste-website/package.json
Expand Up @@ -27,6 +27,7 @@
"@next/bundle-analyzer": "^13.1.6",
"@next/mdx": "^13.1.6",
"@sparticuz/chromium": "^110.0.0",
"@twilio-paste/account-switcher": "^1.0.0",
"@twilio-paste/alert": "^13.0.0",
"@twilio-paste/alert-dialog": "^8.0.0",
"@twilio-paste/anchor": "^11.0.0",
Expand Down Expand Up @@ -89,6 +90,7 @@
"@twilio-paste/pagination": "^6.0.0",
"@twilio-paste/paragraph": "^9.0.0",
"@twilio-paste/popover": "^12.0.0",
"@twilio-paste/product-switcher": "1.0.0",
"@twilio-paste/radio-button-group": "^3.0.0",
"@twilio-paste/radio-group": "^12.0.0",
"@twilio-paste/react-textarea-autosize-library": "^2.0.0",
Expand Down
@@ -0,0 +1,63 @@
export const accountSwitcherExample = `
const AccountSwitcherMenu = () => {
const accountSwitcher = useAccountSwitcherState();
const [selectedAccount, setSelectedAccount] = React.useState('Owl Telehealth');
return (
<>
<AccountSwitcherBadge {...accountSwitcher} i18nButtonLabel="Switch accounts">
Owl Telehealth
</AccountSwitcherBadge>
<AccountSwitcher {...accountSwitcher} aria-label="Avaiable accounts">
<AccountSwitcherGroup label="Recent accounts">
<AccountSwitcherItemRadio
name="recent_accounts"
value="Owl Telehealth"
checked={selectedAccount === 'Owl Telehealth'}
onChange={() => setSelectedAccount('Owl Telehealth')}
{...accountSwitcher}
>
Owl Telehealth
</AccountSwitcherItemRadio>
<AccountSwitcherItemRadio
name="recent_accounts"
value="Owl Health Demo"
checked={selectedAccount === 'Owl Health Demo'}
onChange={() => setSelectedAccount('Owl Health Demo')}
{...accountSwitcher}
>
Owl Health Demo
</AccountSwitcherItemRadio>
<AccountSwitcherItemRadio
name="recent_accounts"
value="Owl Subway"
checked={selectedAccount === 'Owl Subway'}
onChange={() => setSelectedAccount('Owl Subway')}
{...accountSwitcher}
>
Owl Subway
</AccountSwitcherItemRadio>
</AccountSwitcherGroup>
<AccountSwitcherSeparator />
<AccountSwitcherItem {...accountSwitcher} href="#">
Account settings
</AccountSwitcherItem>
<AccountSwitcherSeparator />
<AccountSwitcherItem {...accountSwitcher} href="#">
View all accounts
</AccountSwitcherItem>
<AccountSwitcherItem {...accountSwitcher} href="#">
View all subaccounts
</AccountSwitcherItem>
<AccountSwitcherSeparator />
<AccountSwitcherItem {...accountSwitcher} href="#">
Admin Center
</AccountSwitcherItem>
</AccountSwitcher>
</>
);
};
render(
<AccountSwitcherMenu />
)
`.trim();
Expand Up @@ -53,8 +53,8 @@ const DescriptionListExample = () => {
<ProcessInProgressIcon
color="colorTextIconNeutral"
decorative={false}
title="in progress" />
<Text as="span" marginLeft="space20">In progress</Text>
title="In-progress" />
<Text as="span" marginLeft="space20">In-progress</Text>
</Box>
</DescriptionListDetails>
</DescriptionListSet>
Expand Down
@@ -0,0 +1,77 @@
export const productSwitcherExample = `
const ProductSwitcherMenu = () => {
const productSwitcher = useProductSwitcherState();
const [product, setProduct] = React.useState('twilio');
return (
<>
<ProductSwitcherButton {...productSwitcher} i18nButtonLabel="Switch products" />
<ProductSwitcher {...productSwitcher} aria-label="Avaiable accounts">
<ProductSwitcherItem
{...productSwitcher}
name="product"
value="twilio"
checked={product === 'twilio'}
onChange={(e) => {
setProduct('twilio');
}}
productName="Twilio"
productStrapline="SMS, Voice & Video"
productIcon={<LogoTwilioIcon decorative />}
/>
<ProductSwitcherItem
{...productSwitcher}
name="product"
value="segment"
checked={product === 'segment'}
onChange={(e) => {
setProduct('segment');
}}
productName="Segment"
productStrapline="Customer data platform"
productIcon={<ProductSegmentIcon decorative />}
/>
<ProductSwitcherItem
{...productSwitcher}
name="product"
value="flex"
checked={product === 'flex'}
onChange={(e) => {
setProduct('flex');
}}
productName="Flex"
productStrapline="Cloud-based contact center"
productIcon={<ProductFlexIcon decorative />}
/>
<ProductSwitcherItem
{...productSwitcher}
name="product"
value="sendgrid"
checked={product === 'sendgrid'}
onChange={(e) => {
setProduct('sendgrid');
}}
productName="SendGrid"
productStrapline="Email delivery and API"
productIcon={<ProductEmailAPIIcon decorative />}
/>
<ProductSwitcherItem
{...productSwitcher}
name="product"
value="admin"
checked={product === 'admin'}
onChange={(e) => {
setProduct('admin');
}}
productName="Console Admin"
productStrapline="Admin center"
productIcon={<LogoTwilioIcon decorative />}
/>
</ProductSwitcher>
</>
);
};
render(
<ProductSwitcherMenu />
)
`.trim();

0 comments on commit 76b28cb

Please sign in to comment.