@devsym/graph-toolkit-react 1.0.0-next.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/AGENTS.md +8 -0
  2. package/CONTRIBUTING.md +64 -0
  3. package/README.md +257 -0
  4. package/dist/components/People/People.d.ts +16 -0
  5. package/dist/components/People/People.d.ts.map +1 -0
  6. package/dist/components/People/People.types.d.ts +103 -0
  7. package/dist/components/People/People.types.d.ts.map +1 -0
  8. package/dist/components/People/index.d.ts +6 -0
  9. package/dist/components/People/index.d.ts.map +1 -0
  10. package/dist/components/PeoplePicker/PeoplePicker.d.ts.map +1 -1
  11. package/dist/components/PeoplePicker/PeoplePicker.types.d.ts +35 -0
  12. package/dist/components/PeoplePicker/PeoplePicker.types.d.ts.map +1 -1
  13. package/dist/components/PeoplePicker/index.d.ts +1 -1
  14. package/dist/components/PeoplePicker/index.d.ts.map +1 -1
  15. package/dist/components/Person/Person.d.ts.map +1 -1
  16. package/dist/components/Person/Person.types.d.ts +48 -0
  17. package/dist/components/Person/Person.types.d.ts.map +1 -1
  18. package/dist/components/Person/index.d.ts +1 -1
  19. package/dist/components/Person/index.d.ts.map +1 -1
  20. package/dist/hooks/usePeopleList.d.ts +74 -0
  21. package/dist/hooks/usePeopleList.d.ts.map +1 -0
  22. package/dist/hooks/usePeopleSearch.d.ts +6 -1
  23. package/dist/hooks/usePeopleSearch.d.ts.map +1 -1
  24. package/dist/hooks/usePersonData.d.ts.map +1 -1
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -3
  28. package/dist/index.mjs +1584 -1352
  29. package/dist/providers/IPersonDataProvider.d.ts +14 -1
  30. package/dist/providers/IPersonDataProvider.d.ts.map +1 -1
  31. package/dist/providers/MockProvider.d.ts.map +1 -1
  32. package/dist/utils/graph.d.ts +17 -0
  33. package/dist/utils/graph.d.ts.map +1 -1
  34. package/docs/assets/readme/banner.jpg +0 -0
  35. package/docs/assets/readme/banner.png +0 -0
  36. package/docs/assets/readme/provider-flow.svg +76 -0
  37. package/package.json +26 -25
  38. package/readme.md +0 -415
package/AGENTS.md CHANGED
@@ -141,6 +141,8 @@ export class MyProvider implements IProvider {
141
141
  | --- | --- | --- |
142
142
  | Current user profile (`userId="me"`) | `User.Read` | Required for basic profile fields |
143
143
  | Other user profile (`userId="{id/upn}"`) | `User.ReadBasic.All` | May require admin consent |
144
+ | People default suggestions | `User.ReadBasic.All` | Used for the initial `/users` directory list when no explicit people source is provided |
145
+ | PeoplePicker focus suggestions | `User.ReadBasic.All` | Uses the initial `/users` directory list shown before typing |
144
146
  | Presence (`showPresence`) | `Presence.Read` | UI still renders without presence |
145
147
  | Profile photo (`fetchImage`) | `User.Read` | Falls back to initials if unavailable |
146
148
 
@@ -161,6 +163,12 @@ export class MyProvider implements IProvider {
161
163
  - Wrap components with `GraphProvider`; avoid direct token handling in UI components.
162
164
  - If uncertain, default to `MockProvider` for local iteration, then switch to real auth provider.
163
165
 
166
+ ## Storybook Development
167
+
168
+ - Add `tags: ['autodocs']` to each component story `meta` so Storybook generates a component-level Docs page.
169
+ - Use `parameters.docs.description.component` plus documented `argTypes` to make the Docs page explain the component and its feature stories.
170
+ - Keep component examples in a single `*.stories.tsx` file with representative feature stories instead of separate docs-only pages per feature.
171
+
164
172
  ## Source of Truth
165
173
 
166
174
  - Primary docs: `README.md`
@@ -0,0 +1,64 @@
1
+ # Contributing
2
+
3
+ Thanks for helping improve Graph Toolkit React. This project is a React-first component library for Microsoft Graph built with Fluent UI v9, TypeScript, Vite, Vitest, and Storybook.
4
+
5
+ ## Getting Started
6
+
7
+ Install dependencies from the repository root:
8
+
9
+ ```bash
10
+ npm install
11
+ ```
12
+
13
+ Run the standard validation commands before opening a pull request:
14
+
15
+ ```bash
16
+ npm run type-check
17
+ npm run lint
18
+ npm run test
19
+ npm run build
20
+ ```
21
+
22
+ Run Storybook locally when changing components or docs:
23
+
24
+ ```bash
25
+ npm run storybook
26
+ ```
27
+
28
+ ## Development Guidelines
29
+
30
+ - Prefer existing project patterns over new abstractions.
31
+ - Use Fluent UI v9 components and typings for UI surfaces.
32
+ - Keep Microsoft Graph scopes minimal and feature-driven.
33
+ - Prefer Microsoft Graph `id` values for path-based Graph calls when IDs are available.
34
+ - URL-encode dynamic Graph path segments before building request paths.
35
+ - Add or update tests for behavior changes.
36
+ - Add or update Storybook stories for component-facing changes.
37
+ - Add `tags: ['autodocs']` to component story metadata.
38
+ - Document public interfaces, types, functions, and story args with clear JSDoc or Storybook metadata.
39
+
40
+ ## Changesets
41
+
42
+ User-facing changes should include a changeset:
43
+
44
+ ```bash
45
+ npm run changeset
46
+ ```
47
+
48
+ Choose the smallest appropriate bump and write the summary for package consumers. Documentation-only changes that affect package usage should still include a changeset when they change published guidance.
49
+
50
+ ## Documentation
51
+
52
+ Update the README, Storybook docs, sample docs, or migration guide when a change affects setup, supported scenarios, permissions, public APIs, or component behavior.
53
+
54
+ For sample app changes, update [samples/react-msal-sample/README.md](samples/react-msal-sample/README.md).
55
+
56
+ ## Pull Request Checklist
57
+
58
+ - Validation commands pass locally or in CI.
59
+ - Tests cover new behavior or regressions.
60
+ - Storybook covers new or changed component states.
61
+ - Documentation reflects user-facing behavior.
62
+ - A changeset is included for user-facing changes.
63
+
64
+ This project follows the [Microsoft Open Source Code of Conduct](CODE_OF_CONDUCT.md).
package/README.md ADDED
@@ -0,0 +1,257 @@
1
+ # Graph Toolkit React
2
+
3
+ React components for Microsoft Graph, built with Fluent UI v9 and a provider model that fits modern React applications.
4
+
5
+ <p>
6
+ <a href="https://www.npmjs.com/package/@devsym/graph-toolkit-react"><img src="https://img.shields.io/npm/v/@devsym/graph-toolkit-react/beta?label=npm%20beta" alt="npm beta version"></a>
7
+ <a href="https://github.com/ThomasPe/graph-toolkit-react/actions/workflows/pr.yml"><img src="https://github.com/ThomasPe/graph-toolkit-react/actions/workflows/pr.yml/badge.svg" alt="Build and Test"></a>
8
+ <a href="https://github.com/ThomasPe/graph-toolkit-react/actions/workflows/codeql-analysis.yml"><img src="https://github.com/ThomasPe/graph-toolkit-react/actions/workflows/codeql-analysis.yml/badge.svg" alt="CodeQL Security Scan"></a>
9
+ <a href="https://www.npmjs.com/package/@devsym/graph-toolkit-react"><img src="https://img.shields.io/npm/dm/@devsym/graph-toolkit-react" alt="npm downloads"></a>
10
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT license"></a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <img src="docs/assets/readme/banner.png" alt="Graph Toolkit React" width="100%">
15
+ </p>
16
+
17
+ ## Status
18
+
19
+ Graph Toolkit React is in beta and published on the npm `beta` channel. It is ready for evaluation and early adopters, but public APIs may still change until the package exits prerelease mode and is published on the `latest` tag.
20
+
21
+ ```bash
22
+ npm install @devsym/graph-toolkit-react@beta
23
+ ```
24
+
25
+ This package is a React-first successor inspired by Microsoft Graph Toolkit. It uses Fluent UI v9 components directly instead of wrapping framework-agnostic web components.
26
+
27
+ ## Installation
28
+
29
+ Install the package and required peer dependencies:
30
+
31
+ ```bash
32
+ npm install @devsym/graph-toolkit-react@beta react react-dom @fluentui/react-components
33
+ ```
34
+
35
+ Install MSAL only when you use `MsalBrowserProvider`:
36
+
37
+ ```bash
38
+ npm install @azure/msal-browser
39
+ ```
40
+
41
+ `@azure/msal-browser` is an optional peer dependency. Teams-hosted apps that use `TeamsHostedProvider` do not need it unless the app uses MSAL elsewhere.
42
+
43
+ ## Quick Start
44
+
45
+ Use `MockProvider` for local development, demos, and Storybook-style prototyping without authentication setup.
46
+
47
+ ```tsx
48
+ import { FluentProvider, webLightTheme } from '@fluentui/react-components';
49
+ import { GraphProvider, MockProvider, Person } from '@devsym/graph-toolkit-react';
50
+
51
+ const provider = new MockProvider();
52
+
53
+ export function App() {
54
+ return (
55
+ <FluentProvider theme={webLightTheme}>
56
+ <GraphProvider provider={provider}>
57
+ <Person userId="AdeleV@contoso.com" view="twolines" showPresence />
58
+ </GraphProvider>
59
+ </FluentProvider>
60
+ );
61
+ }
62
+ ```
63
+
64
+ For a complete browser-hosted app, try the deployed [React MSAL sample](https://gentle-beach-0f6fe2903.2.azurestaticapps.net) or review [samples/react-msal-sample/README.md](samples/react-msal-sample/README.md).
65
+
66
+ ## Providers
67
+
68
+ Choose one provider and pass it to `GraphProvider`.
69
+
70
+ | Scenario | Provider | Notes |
71
+ | --- | --- | --- |
72
+ | Local development and UI prototyping | `MockProvider` | Returns deterministic mock data without Graph calls. |
73
+ | Browser-hosted React SPA | `MsalBrowserProvider` | Uses `@azure/msal-browser` redirect flow. |
74
+ | Microsoft Teams-hosted app | `TeamsHostedProvider` | Uses app-owned TeamsJS login plus a backend Graph token exchange. |
75
+ | Existing auth stack | Custom `IProvider` | Implement token acquisition and state management yourself. |
76
+
77
+ <p align="center">
78
+ <img src="docs/assets/readme/provider-flow.svg" alt="Graph Toolkit React provider flow from React components through GraphProvider to Microsoft Graph" width="100%">
79
+ </p>
80
+
81
+ ### Browser SPA With MSAL
82
+
83
+ ```tsx
84
+ import { PublicClientApplication } from '@azure/msal-browser';
85
+ import { GraphProvider, MsalBrowserProvider, Person } from '@devsym/graph-toolkit-react';
86
+
87
+ const msal = new PublicClientApplication({
88
+ auth: {
89
+ clientId: 'YOUR_CLIENT_ID',
90
+ authority: 'https://login.microsoftonline.com/common',
91
+ redirectUri: window.location.origin,
92
+ },
93
+ });
94
+
95
+ const provider = new MsalBrowserProvider(msal, ['User.Read']);
96
+ await provider.initialize();
97
+
98
+ export function App() {
99
+ return (
100
+ <GraphProvider provider={provider}>
101
+ <Person userId="me" view="threelines" />
102
+ </GraphProvider>
103
+ );
104
+ }
105
+ ```
106
+
107
+ Register the redirect URI as a single-page application platform in Microsoft Entra ID.
108
+
109
+ ### Teams-Hosted Apps
110
+
111
+ Use `TeamsHostedProvider` when a Teams app already owns TeamsJS authentication and exchanges tokens through a backend.
112
+
113
+ ```tsx
114
+ import {
115
+ createBackendTokenExchange,
116
+ GraphProvider,
117
+ Person,
118
+ TeamsHostedProvider,
119
+ } from '@devsym/graph-toolkit-react';
120
+ import { authentication } from '@microsoft/teams-js';
121
+
122
+ const exchangeForGraphToken = createBackendTokenExchange({
123
+ endpoint: '/api/token/exchange',
124
+ });
125
+
126
+ const provider = new TeamsHostedProvider({
127
+ defaultScopes: ['User.Read'],
128
+ getTeamsSsoToken: scopes => authentication.getAuthToken({ resources: scopes }),
129
+ exchangeForGraphToken,
130
+ });
131
+
132
+ await provider.login();
133
+
134
+ export function App() {
135
+ return (
136
+ <GraphProvider provider={provider}>
137
+ <Person userId="me" view="threelines" showPresence />
138
+ </GraphProvider>
139
+ );
140
+ }
141
+ ```
142
+
143
+ ## Components
144
+
145
+ The README keeps component examples intentionally short so it stays useful as new components are added. Explore live examples, props, and behavior in [Storybook](https://thomaspe.github.io/graph-toolkit-react/).
146
+
147
+ | Component or hook | Purpose | Where to start |
148
+ | --- | --- | --- |
149
+ | `Person` | Render a Microsoft Graph user with Fluent UI `Persona`, profile photo, presence, and configurable text lines. | Storybook examples for profile views, line rendering, direct data, and presence. |
150
+ | `People` | Render compact avatar groups from direct data, explicit user IDs, group membership, or directory defaults. | Storybook examples for avatar layouts, group lookups, direct data, and overflow behavior. |
151
+ | `PeoplePicker` | Search, select, exclude, and manage people using Fluent UI `TagPicker`. | Storybook examples for default selections, exclusions, limits, and controlled selection. |
152
+ | `usePersonData` | Resolve person data for custom UI. | Use when the built-in `Person` layout is not enough. |
153
+ | `usePeopleList` | Resolve and optionally sort a list of people. | Use when apps need to compose their own list or grid UI. |
154
+ | `usePeopleSearch` | Search users for custom picker experiences. | Use when apps need a fully custom search or picker surface. |
155
+
156
+ `Person`, `People`, and `PeoplePicker` expose `onUpdated` callbacks so apps can react to direct data changes, resolved content loads, and picker state updates with trigger metadata.
157
+
158
+ ## Permissions
159
+
160
+ Request the smallest set of Microsoft Graph delegated scopes needed by the features you enable.
161
+
162
+ | Feature | Minimum delegated scope | Notes |
163
+ | --- | --- | --- |
164
+ | Current user profile, `userId="me"` | `User.Read` | Required for basic profile fields. |
165
+ | Other user profile by ID or UPN | `User.ReadBasic.All` | May require admin consent depending on tenant policy. |
166
+ | `People` default directory list | `User.ReadBasic.All` | Used when no explicit people source is provided. |
167
+ | `People` group members via `groupId` | `GroupMember.Read.All` | Required only for direct group membership lookup. |
168
+ | `PeoplePicker` focus suggestions | `User.ReadBasic.All` | Uses the initial `/users` directory list shown before typing. |
169
+ | Presence | `Presence.Read` | UI still renders without presence if unavailable. |
170
+ | Profile photo | `User.Read` | Falls back to initials if no photo is available. |
171
+
172
+ ## Examples and Documentation
173
+
174
+ - [Storybook](https://thomaspe.github.io/graph-toolkit-react/) for interactive component docs.
175
+ - [samples/react-msal-sample/README.md](samples/react-msal-sample/README.md) for a browser SPA with MSAL redirect auth.
176
+ - [AGENTS.md](AGENTS.md) for a scenario-first reference that coding agents can consume.
177
+ - [docs/COMPONENT_ROADMAP.md](docs/COMPONENT_ROADMAP.md) for planned component work.
178
+
179
+ ## Support and Feedback
180
+
181
+ Use [GitHub Issues](https://github.com/ThomasPe/graph-toolkit-react/issues) for bugs, questions, and component requests. Include the package version, React version, provider type, affected component, and a minimal reproduction when possible.
182
+
183
+ ## Supported Environments
184
+
185
+ | Area | Support |
186
+ | --- | --- |
187
+ | React | 18 and 19 |
188
+ | Fluent UI | `@fluentui/react-components` v9 |
189
+ | TypeScript | 5.9 |
190
+ | Development runtime | Node.js 24, matching CI |
191
+ | Package output | ESM, CommonJS, and TypeScript declarations |
192
+
193
+ ## Development
194
+
195
+ ```bash
196
+ npm install
197
+ npm run type-check
198
+ npm run lint
199
+ npm run test
200
+ npm run build
201
+ ```
202
+
203
+ Run Storybook locally:
204
+
205
+ ```bash
206
+ npm run storybook
207
+ ```
208
+
209
+ Build the static Storybook site:
210
+
211
+ ```bash
212
+ npm run build-storybook
213
+ ```
214
+
215
+ Regenerate the README component screenshot from real Storybook renders:
216
+
217
+ ```bash
218
+ npm run screenshots:readme
219
+ ```
220
+
221
+ ### Project Structure
222
+
223
+ ```text
224
+ src/
225
+ components/
226
+ People/
227
+ PeoplePicker/
228
+ Person/
229
+ hooks/
230
+ providers/
231
+ utils/
232
+ stories/
233
+ samples/react-msal-sample/
234
+ docs/
235
+ ```
236
+
237
+ ## Release Process
238
+
239
+ This repository uses Changesets and npm Trusted Publishing through GitHub Actions. User-facing changes should include a changeset file under `.changeset/`.
240
+
241
+ For maintainer details, see [PUBLISHING.md](PUBLISHING.md).
242
+
243
+ ## Contributing
244
+
245
+ Contributions are welcome. Start with [CONTRIBUTING.md](CONTRIBUTING.md), which covers local setup, testing expectations, docs updates, and changesets.
246
+
247
+ This project follows the [Microsoft Open Source Code of Conduct](CODE_OF_CONDUCT.md).
248
+
249
+ ## License
250
+
251
+ MIT. See [LICENSE](LICENSE) for details.
252
+
253
+ ## Acknowledgments
254
+
255
+ - [Fluent UI](https://react.fluentui.dev/) for the React component system.
256
+ - [Microsoft Graph](https://graph.microsoft.com) for the API surface behind the components.
257
+ - The Microsoft Graph Toolkit community for the original component patterns that inspired this React-first package.
@@ -0,0 +1,16 @@
1
+ /**
2
+ * People component - Display a compact group of people as overlapping avatars
3
+ */
4
+ import React from 'react';
5
+ import { PeopleProps } from './People.types';
6
+ /**
7
+ * `People` renders a compact avatar strip similar to the MGT `mgt-people` control.
8
+ *
9
+ * The component can render a supplied list of people, resolve a list of `userIds`, load
10
+ * group members, or default to tenant directory users from `/users`.
11
+ *
12
+ * @param props - Avatar group configuration and people-loading options
13
+ * @returns A compact avatar group, a loading spinner, or `null` when no people are available
14
+ */
15
+ export declare const People: React.FC<PeopleProps>;
16
+ //# sourceMappingURL=People.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"People.d.ts","sourceRoot":"","sources":["../../../src/components/People/People.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAoB,MAAM,OAAO,CAAC;AASzC,OAAO,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA8C3D;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAoExC,CAAC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * People component types
3
+ */
4
+ import type { AvatarGroupProps } from '@fluentui/react-components';
5
+ import type { PeopleSearchResult } from '../../providers/IPersonDataProvider';
6
+ import type { PersonDetails } from '../Person/Person.types';
7
+ /**
8
+ * Supported built-in sort fields for resolved people collections.
9
+ */
10
+ export type PeopleSortField = 'displayName' | 'givenName' | 'surname';
11
+ /**
12
+ * Sort direction for resolved people collections.
13
+ */
14
+ export type PeopleSortDirection = 'asc' | 'desc';
15
+ /**
16
+ * Triggers reported by the {@link PeopleProps.onUpdated} callback.
17
+ */
18
+ export type PeopleUpdateTrigger = 'peopleChanged' | 'peopleLoaded' | 'peopleLoadFailed';
19
+ /**
20
+ * A person entry rendered by the {@link People} component.
21
+ *
22
+ * This extends the base people search result shape with optional presence fields used
23
+ * for avatar badges when {@link PeopleProps.showPresence} is enabled.
24
+ * Presence fields and additional custom fields are inherited from {@link PersonDetails}.
25
+ */
26
+ export type PeoplePerson = PersonDetails & PeopleSearchResult;
27
+ /**
28
+ * Event payload reported when the {@link People} component finishes a meaningful update.
29
+ */
30
+ export interface PeopleUpdatedEvent {
31
+ /**
32
+ * The reason the component reported the update.
33
+ */
34
+ trigger: PeopleUpdateTrigger;
35
+ /**
36
+ * The resolved people currently rendered by the component.
37
+ */
38
+ people: PeoplePerson[];
39
+ /**
40
+ * Whether the component is still loading data.
41
+ */
42
+ loading: boolean;
43
+ /**
44
+ * The most recent list-loading error, if any.
45
+ */
46
+ error: Error | null;
47
+ }
48
+ /**
49
+ * Props for the {@link People} component.
50
+ */
51
+ export interface PeopleProps extends Omit<AvatarGroupProps, 'children'> {
52
+ /**
53
+ * A pre-resolved list of people to render.
54
+ *
55
+ * When provided, the component skips list discovery and renders these people directly.
56
+ */
57
+ people?: PeoplePerson[];
58
+ /**
59
+ * A list of user identifiers to resolve and render.
60
+ *
61
+ * Values can be Microsoft Graph user IDs, UPNs, email addresses, or `"me"`.
62
+ */
63
+ userIds?: string[];
64
+ /**
65
+ * Additional Graph user fields to request when the component resolves people.
66
+ */
67
+ selectFields?: string[];
68
+ /**
69
+ * Field used to sort the resolved people collection.
70
+ */
71
+ sortBy?: PeopleSortField;
72
+ /**
73
+ * Direction used when {@link PeopleProps.sortBy} is provided.
74
+ *
75
+ * Defaults to `asc`.
76
+ */
77
+ sortDirection?: PeopleSortDirection;
78
+ /**
79
+ * The ID of a Microsoft Entra ID group whose direct user members should be rendered.
80
+ */
81
+ groupId?: string;
82
+ /**
83
+ * Maximum number of visible avatars before the remaining people are shown in overflow.
84
+ *
85
+ * Defaults to `3`, matching the MGT `mgt-people` control.
86
+ */
87
+ showMax?: number;
88
+ /**
89
+ * Whether presence badges should be shown on each avatar.
90
+ *
91
+ * Presence is loaded when the active provider and granted scopes support it.
92
+ */
93
+ showPresence?: boolean;
94
+ /**
95
+ * Called after the component updates its resolved people collection.
96
+ *
97
+ * Use this to react to direct `people` changes, successful list loads, or failed loads.
98
+ *
99
+ * @param event - Details about the update trigger and the current resolved people state.
100
+ */
101
+ onUpdated?: (event: PeopleUpdatedEvent) => void;
102
+ }
103
+ //# sourceMappingURL=People.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"People.types.d.ts","sourceRoot":"","sources":["../../../src/components/People/People.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAExF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAAC;IAC7B;;OAEG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACrE;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IAExB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * People component exports
3
+ */
4
+ export { People } from './People';
5
+ export type { PeoplePerson, PeopleProps, PeopleUpdatedEvent, PeopleUpdateTrigger } from './People.types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/People/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PeoplePicker.d.ts","sourceRoot":"","sources":["../../../src/components/PeoplePicker/PeoplePicker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAiB9D,OAAO,EAAsB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoB7E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqJpD,CAAC"}
1
+ {"version":3,"file":"PeoplePicker.d.ts","sourceRoot":"","sources":["../../../src/components/PeoplePicker/PeoplePicker.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAkBjF,OAAO,EAAsB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAmE7E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuMpD,CAAC"}
@@ -10,6 +10,35 @@ import type { PeopleSearchResult } from '../../providers/IPersonDataProvider';
10
10
  * so they can be used interchangeably.
11
11
  */
12
12
  export type PeoplePickerPerson = PeopleSearchResult;
13
+ /**
14
+ * Triggers reported by the {@link PeoplePickerProps.onUpdated} callback.
15
+ */
16
+ export type PeoplePickerUpdateTrigger = 'searchResultsUpdated' | 'selectionChanged';
17
+ /**
18
+ * Event payload reported when the {@link PeoplePicker} component finishes a meaningful update.
19
+ */
20
+ export interface PeoplePickerUpdatedEvent {
21
+ /**
22
+ * The reason the component reported the update.
23
+ */
24
+ trigger: PeoplePickerUpdateTrigger;
25
+ /**
26
+ * The current picker search query.
27
+ */
28
+ searchQuery: string;
29
+ /**
30
+ * The people currently selected in the picker.
31
+ */
32
+ selectedPeople: PeoplePickerPerson[];
33
+ /**
34
+ * The search results currently shown by the picker.
35
+ */
36
+ searchResults: PeoplePickerPerson[];
37
+ /**
38
+ * Whether the picker is still loading search results.
39
+ */
40
+ loading: boolean;
41
+ }
13
42
  /**
14
43
  * Props for the {@link PeoplePicker} component.
15
44
  */
@@ -53,5 +82,11 @@ export interface PeoplePickerProps extends Pick<TagPickerProps, 'appearance' | '
53
82
  * shows up to {@link maxSearchResults} items after exclusion.
54
83
  */
55
84
  excludeUserIds?: string[];
85
+ /**
86
+ * Called after the picker updates its search results or selection state.
87
+ *
88
+ * @param event - Details about the update trigger and the picker state after the update.
89
+ */
90
+ onUpdated?: (event: PeoplePickerUpdatedEvent) => void;
56
91
  }
57
92
  //# sourceMappingURL=PeoplePicker.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PeoplePicker.types.d.ts","sourceRoot":"","sources":["../../../src/components/PeoplePicker/PeoplePicker.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;IAChE;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEtC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"PeoplePicker.types.d.ts","sourceRoot":"","sources":["../../../src/components/PeoplePicker/PeoplePicker.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,sBAAsB,GAAG,kBAAkB,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,yBAAyB,CAAC;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC;;OAEG;IACH,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;IAChE;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAEtC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACvD"}
@@ -2,5 +2,5 @@
2
2
  * PeoplePicker component exports
3
3
  */
4
4
  export { PeoplePicker } from './PeoplePicker';
5
- export type { PeoplePickerProps, PeoplePickerPerson } from './PeoplePicker.types';
5
+ export type { PeoplePickerProps, PeoplePickerPerson, PeoplePickerUpdatedEvent, PeoplePickerUpdateTrigger, } from './PeoplePicker.types';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PeoplePicker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PeoplePicker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Person.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAA8D,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAsHrH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAyHxC,CAAC"}
1
+ {"version":3,"file":"Person.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA6B,MAAM,OAAO,CAAC;AAIlD,OAAO,EAA8D,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAqKrH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2MxC,CAAC"}
@@ -4,6 +4,10 @@
4
4
  import type { PersonaProps } from '@fluentui/react-components';
5
5
  import type { ReactElement } from 'react';
6
6
  export type PersonView = 'avatar' | 'oneline' | 'twolines' | 'threelines' | 'fourlines';
7
+ /**
8
+ * Triggers reported by the {@link PersonProps.onUpdated} callback.
9
+ */
10
+ export type PersonUpdateTrigger = 'personDetailsChanged' | 'personLoaded' | 'personLoadFailed';
7
11
  /**
8
12
  * Normalized details about a person used by the {@link Person} component.
9
13
  *
@@ -11,6 +15,21 @@ export type PersonView = 'avatar' | 'oneline' | 'twolines' | 'threelines' | 'fou
11
15
  * and is used as the backing data for line mappings and custom renderers.
12
16
  */
13
17
  export interface PersonDetails {
18
+ /**
19
+ * A pre-resolved profile photo URL.
20
+ *
21
+ * When supplied, the {@link Person} component can render the avatar image without fetching it
22
+ * again.
23
+ */
24
+ photoUrl?: string | null;
25
+ /**
26
+ * The person's first name.
27
+ */
28
+ givenName?: string | null;
29
+ /**
30
+ * The person's last name.
31
+ */
32
+ surname?: string | null;
14
33
  /**
15
34
  * The person's display name.
16
35
  */
@@ -86,6 +105,27 @@ export interface PersonLineRenderContext {
86
105
  * @returns A React element, plain string, or `null` to skip the line.
87
106
  */
88
107
  export type PersonLineRenderer = (context: PersonLineRenderContext) => ReactElement | string | null;
108
+ /**
109
+ * Event payload reported when the {@link Person} component finishes a meaningful update.
110
+ */
111
+ export interface PersonUpdatedEvent {
112
+ /**
113
+ * The reason the component reported the update.
114
+ */
115
+ trigger: PersonUpdateTrigger;
116
+ /**
117
+ * The resolved person details currently rendered by the component, when available.
118
+ */
119
+ person: PersonDetails | null;
120
+ /**
121
+ * Whether the component is still loading data.
122
+ */
123
+ loading: boolean;
124
+ /**
125
+ * The most recent load error, if any.
126
+ */
127
+ error: Error | null;
128
+ }
89
129
  export interface PersonProps extends PersonaProps {
90
130
  userId?: string;
91
131
  userPrincipalName?: string;
@@ -157,6 +197,14 @@ export interface PersonProps extends PersonaProps {
157
197
  * would have been shown based on `line4Property`, if any.
158
198
  */
159
199
  renderLine4?: PersonLineRenderer;
200
+ /**
201
+ * Called after the component updates its resolved person state.
202
+ *
203
+ * Use this to react to direct `personDetails` changes, successful data loads, or failed loads.
204
+ *
205
+ * @param event - Details about the update trigger and the current resolved person state.
206
+ */
207
+ onUpdated?: (event: PersonUpdatedEvent) => void;
160
208
  fetchImage?: boolean;
161
209
  }
162
210
  //# sourceMappingURL=Person.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Person.types.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAExF;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;;OAIG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,uBAAuB,KAAK,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;AAEpG,MAAM,WAAW,WAAY,SAAQ,YAAY;IAE/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAGjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"Person.types.d.ts","sourceRoot":"","sources":["../../../src/components/Person/Person.types.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * Person component exports
3
3
  */
4
4
  export { Person } from './Person';
5
- export type { PersonLineRenderContext, PersonLineRenderer, PersonProps, } from './Person.types';
5
+ export type { PersonLineRenderContext, PersonLineRenderer, PersonProps, PersonUpdatedEvent, PersonUpdateTrigger, } from './Person.types';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Person/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,WAAW,GACZ,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Person/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}