Arc
ComponentsBlocksScreensDocsPricingTry the demo
Get Pro
Saved

Docs

IntroductionInstallationThemingMotionAI and MCPChangelog

Components136

ButtonAction buttonSplit buttonButton groupFloating button groupExpanding button groupCopy buttonAction swapIcon morphConfirm morphTheme switcher

Hold to confirmSwipe actionsReactions

Dropdown menuContext menuUser menu

InputTextareaPassword fieldPassword strengthSearch fieldExpanding searchInline edit

Number fieldMoney inputPhone inputScrub inputTag inputMention inputShortcut recorder

SelectComboboxMulti-selectMorph selectChip group

Radio cardsBilling toggleCheckboxRadio groupSwitchSegmented controlRatingToggle group

SliderElastic sliderRange histogram sliderRuler sliderWindow rangeNewProLens rangeNewPro

CalendarDate pickerDate range pickerTime pickerColor pickerEmoji pickerPro

Rich text editorSignature padFile dropzoneAvatar uploadPro

TabsBreadcrumbPaginationMega menu morphProTable of contents progressPro

Scroll areaAccordionExpandable cardResizable panelsExpandable text

DialogDrawerBottom sheetPopoverHover cardTooltipShare accessProConfirm popoverPro

AlertToastToast stackAnnouncement barCookie consentUndo toastPro

ProgressSkeletonStepperCountdownUsage meterOnboarding checklist

AvatarAvatar groupBadgePresence stackPro

CardMetric cardEmpty stateMetric tickerPro

Line chartBar chartDonut chartStreamgraphBrush chartWaffle chartSlope chartSparklineGaugeActivity heatmapAnimated counterRidgelineTreemapSplit barPro

SunburstProSankey flowProFunnel chartProRadar chartProRealtime streamProRace bar chartProData gridPro

Sortable data tableTree tableTree viewReorderable listFilter toolbarCode blockJSON viewer

TimelineComment threadChat thread

Image compareCarouselCard stack

Text revealIn-view titleText morphText shimmer

Blocks122

KPI drilldownProMetric explorerProRevenue explorerProMRR waterfallProCohort retentionProUsage forecastProJourney flowProUptime statusProPivot builderProChoropleth explorerProConnected scatterProHorizon chartProAccount healthPro

Budget variancePro

Small multiplesProLine replayPro

AI chatProAI composerProAI answerProModel pickerProModel arenaProPrompt studioProDocument extractionProAgent memoryProAI side panelProAI inline editProResearch runProAI insight cardProCatch upProAI feature launchProAI search barProAI setup wizardProCall insightsProLead scoringPro

Agent runProAgent tasksProAgent approvalsProAgent routinesProAgent orchestratorProMCP serversProKnowledge baseProEval suiteProAgent builderProAgent galleryPro

SidebarPro4Page headerCommand paletteNotification centerSelection toolbarProEmpty statesSearch resultsPro

Login and sign up5, free and Pro variantsOnboarding illustrationProOTP inputMulti-step formProTwo-factor setupProMagic linkPro

Settings pageProSettings commandProSecurity settingsProBilling overviewProUsage billingProCancel flowProOnboarding surveyProSpend alertPro

Team membersProInvite peopleProRoles and permissionsProProfile pagePro

API keysProWebhooksProIntegrationsProImport wizardNewProEnvironment variablesProDomain verifyProWebhook testerPro

Plan comparisonPricing calculatorProUsage pricingProCart drawerProCheckout summaryProLive checkoutProSeat managerProCredit top-upPro

Wallet cardProDelivery trackerProSeat mapPro

Activity feedProSupport widgetProFeature votingPro

File uploadMedia playerPro

Availability pickerProRelease readinessProFeedback boardProSmart schedulerProTask breakdownProGoal trackerPro

Hero sectionHero signupPro

Scroll storyProSpotlight gridProFeature bentoProComparison table

Logo marqueeStudio perspectivesProStats band

Changelog feedFAQ sectionContact sectionTeam showcaseProBlog grid

Site headerSite footerCTA sectionNewsletter signup

Activity terrainProRevenue globeProCustomer galaxyProSemantic zoomProLayout morphProExploded viewPro

Screens14

Metrics dashboardProMarket terminalPro

Kanban boardProProject boardProGantt timelinePro

Week calendarProMonth calendarNewPro

Team directoryPro

Inbox triageProSupport conversationProHelp centerPro

Product listingProProduct detailProInvoice studioPro

Special components106

Share sheetProAction morphProMorph navProDockProLiquid tab barProOrbit menuPro

Glass menuProGlass segmentedProGlass cardProGlass tab barPro

Sheet stackProWallet stackProControl centerProHolo cardProCard to articleProLink unfurlPro

Product galleryProLightbox galleryProPhoto gridProCover flowPro

Voice orbProNow playingProVoice recorderPro

Booking pillProActivity ringsProTime dialProDate reelPro

Keycap keyboardProSlot textSand textProTypewriter terminalPro

Stretch refreshProMorph loaderProSkeleton morphProBlack holeProCharge sessionPro

Sticker peelProTicket tearProPage curlProOrbit logosProPrize wheelPro

Dot gridProImage trailProGravity wellProInk fluidProCursor trail drawPro

Agent statusProTool callProAgent planProAgent timelineProContext windowProReasoning blockProSource cardsProModel cardProAI workflowProCode suggestionProGhost textProImage generationProDictation buttonProSpeech playerProMeeting summaryProReply draftProAgent handoffProPII redactionProResponse feedbackProLLM cost calculatorProProvider keysProGeneration statsProAI translateProTL;DR toggleProConnector setupProSmart form fillProEnrich columnProTicket routerProAsk your dataProAgent cursorProProvider statusProTraining runProAI commandProStarter promptsProAI mascotProImage revealProAI sparkProPixel mascotProGhost mascotProCube mascotProTone tunerProUpgrade promptProReferral cardProTrial bannerProTeam switcherProLive visitorsProSocial proof toastProInstall snippetPro

Data flowProPayment flowProDNS resolutionProModel trainingProMulti-region failoverProVector searchProBranch graphProAgent loopProMixture of expertsProSpeculative decodingProPrompt cacheProReasoning treePro
What’s new4 new
BlocksInvite people

Invite people

Pro

Invite teammates with roles, bulk paste validation, a seat meter, and avatars that fly into a pending list.

Live block · sample data

When to use

  • Inviting several people at once by name or email, with a role for each.
  • Plans with a seat limit where people should see the effect of an invite before sending.
  • Flows where users paste a messy list from a spreadsheet and need clear per-entry errors.

When not to use

  • Use team-members to manage people who already joined.
  • Use roles-permissions to edit what each role can do.
  • Use tag-input for a plain chip field without a directory, roles, or seats.

Installation

Pro source and install commands unlock with a Pro plan.

Usage

Use this as a starting point and replace the sample data with your own.

example.tsx
1import { InvitePeople } from "@/components/arc/blocks/invite-people/invite-people";2 3export function InviteDialogBody() {4  return <InvitePeople />;5}
Built fromMotion

API reference

InvitePeople

A workspace invite form. People are picked from a directory or typed and pasted as emails, each gets a role, and a seat meter tracks members, pending invites, and the new selection against the plan limit. Sending, joining, resending, revoking, and upgrading are simulated. Also the default export.

No props.

Keyboard interactions

Arrow DownorArrow Up
Moves through the suggestion list, skipping people already on the team or invited.
Enter
Adds the highlighted suggestion, or turns the typed text into a chip.
,or;
Commits the typed text as a chip.
Backspace
In an empty field, the first press marks the last chip and the second removes it.
Escape
Closes the suggestion list, then clears the typed text.
Arrow Down (role button)
Opens the role menu for that chip.
Arrow UporDown, HomeorEnd, Escape
Move through and close the role menu; Escape returns focus to the role button.

Accessibility

  • The field is a combobox with aria-expanded, aria-controls, and aria-activedescendant pointing into a role="listbox" of options; blocked options are aria-disabled.
  • Role menus are role="menu" with menuitemradio items and aria-checked.
  • The seat bar is a role="meter" with aria-valuetext such as "12 of 10 seats, 2 over the limit".
  • Send stays focusable with aria-disabled while blocked and points aria-describedby at the error list or the seat summary.
  • Every add, remove, send, join, and revoke is announced in a polite live region.

Motion

  • Avatars share layoutIds, so a person flies from the suggestion into a chip, from the chip into the pending list, and from the row into the team stack when they join.
  • Invalid chips shake when you try to send; the over-limit notice shakes on the same attempt.
  • Labels that change length resize on a spring and crossfade their text; the field height springs as chips wrap.
  • Reduced motion (MotionConfig reducedMotion="user" plus a hydrated flag) removes shakes, offsets, and layout travel and sets durations to zero.

Responsive behavior

  • The card is at most 600px wide and is a size container. Below 440px pending rows move the status under the name and suggestions hide their title column.
  • Below 480px viewport width the padding drops to 16px and the corner radius shrinks.
  • The role menu is positioned inside the block and clamped 8px from its edges.

Performance

  • AutoWidth and AutoHeight use one ResizeObserver each to spring sizes; there is no per-frame loop.
  • Suggestions filter the in-memory directory on every keystroke and show at most five. For a large directory, search on the server and debounce.
  • All simulated timers are tracked and cleared on unmount and on reset.

Notes for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Use for inviting teammates to a workspace with per-person roles and a seat limit.
  • Replace DIRECTORY, TEAM, INVITED, PLANS, and ROLES in invite-people-data.ts with your own data. parseToken and splitList handle names, bare emails, and "Name <email>" from pasted lists.
  • There are no props or callbacks. Wire the send, resend, revoke, and upgrade functions in the component to your API; the timers there only simulate delivery and one accepted invite.
  • Error chips explain each bad entry in plain words; clicking one moves its text back into the field for editing.
/components/blocks/invite-people/markdown

The full library index for assistants is at /llms.txt.

Related

Team membersProBlockA members list where typed emails turn into chips and fly into pending invites as seats roll.Roles and permissionsProBlockA permissions matrix with group toggles that ripple, role duplication and a review bar.Tag inputComponentTurn short text values into removable tags.Multi-selectComponentSelect several values while keeping the field readable.Avatar groupComponentShow a team or set of contributors in a small space.
PreviousSpotlight gridNextCart drawer
Arc · 122 block pagesllms.txt

On this page

  • Preview
  • When to use
  • When not to use
  • Installation
  • Usage
  • API reference
  • Keyboard
  • Accessibility
  • Motion
  • Responsive behavior
  • Performance
  • Notes for AI
  • Related
View as Markdown

Invite teammates

Add people to Fieldwork by name or email

  • Diane Foster
  • Nathan Cole
  • Jasmine Brooks
  • Daniel Kim
  • Chloe Nguyen

Separate with commas, or paste a whole list

600123456789of100012345678900123456789seatsStarter plan
  • 5 members
  • 1 pending
  • 0 new

Pending 100123456789

  • Tyler HayesMember · tyler.hayes@fieldwork.example
    Sent 2 days ago