Skip to content

feat!: add Fluent UI 9 controls and native SPFx localization for v3 - #8

Merged
fabiofranzini merged 29 commits into
devfrom
apvee/controls
Oct 27, 2026
Merged

fabiofranzini merged 29 commits into
devfrom
apvee/controls

Conversation

@fabiofranzini

Copy link
Copy Markdown
Member

Summary

The toolkit previously focused on SPFx runtime/hooks. This change prepares version 3.0.0 with a Fluent UI 9 control library, native Property Pane pickers and SPFx-localized UI, while preserving the existing provider isolation and public import boundaries.

  • Add text/editing, loading/state, settings/disclosure, Form, DataGrid, Stage, Pagination, DescriptionList, cards, access trims and SharePoint picker families, with public types, documentation and observable sample scenarios.
  • Add searchable SharePoint/Property Pane pickers, scoped access handling and tenant/site/layered configuration storage.
  • Ship eight native SPFx localization families with 50 SharePoint cultures each (400 dictionaries). The consuming application's postinstall runs spfx-react-toolkit configure-localization; typed per-instance strings overrides remain independent of Intl formatting locales.
  • Extend WebPartShell with native Card appearance, size and titlePosition. subtle renders no Card; showTitle=false hides the whole title/action header. Host spacing stays outside Card, with documented structural remount boundaries.
  • Align workspace/package metadata to 3.0.0, update installation/API/migration documentation, and include runtime/data-source license notices.

Large deletions under .docs/ remove internal/generated evidence from Git. That material remains local and ignored; reproducible test inputs are versioned under tests/fixtures/.

Consumer compatibility

  • Consumers of localized controls must register the native resource IDs in their SPFx localizedResources configuration, even when supplying complete strings overrides. See the localization setup and migration guide.
  • Shared Fluent/Griffel/Form peers and the React 17/SPFx host contracts are documented. Root, domain and preserved historical imports retain their verified entrypoint contracts.
  • This PR prepares the package version; it does not publish an npm release or deploy a SharePoint solution.

Validation

  • Latest functional changes: library and SPFx sample builds passed; 46 focused Shell/runtime/type/localization/package/demo tests passed. Local Chrome acceptance passed 734 source and 735 compiled checks, including all Card appearances/sizes, header placements, outer/inner spacing, state retention and narrow LTR/RTL editor menus.
  • Fresh pre-PR checks passed: verify:api, verify:public-docs, verify:examples and diff whitespace validation. Notice text was checked against all 19 declared runtime dependencies and the pinned CLDR/PnP sources; the locally packed tarball contains the updated notices and description.
  • Full npm run verify and isolated-consumer verify:package passed at the native-localization checkpoint. Subsequent version/Shell/metadata changes received the scoped checks above; the PR workflow runs the complete gates again for this head.
  • Authenticated SharePoint workbench validation covered cold English/Italian documents, all eight native Italian resources, per-instance overrides and UI-versus-Intl locale independence. The new Shell Card scenarios were validated locally; their authenticated SharePoint/Teams/screen-reader matrix remains explicitly unexecuted.

Add SharePoint metadata, principal, content type and SDK file-folder pickers with shared rendering, serializable values and lifecycle-safe request handling. Include picker demos, documentation, packaging contracts and regression tests.
Add content and preview cards, scoped permission and group trim controls, and shared control slot contracts. Consolidate provider, hook and service integration, simplify demos and native picker presets, and complete regression coverage and documentation. Fix renderer cleanup in the test harness and update import audit and package contracts.
Compose tenant and site collection stores through an additive service and hook with explicit write scopes and site overrides. Include public API documentation, regression tests and the Configuration web part demo.
Use real policy validators in hook fixtures and tighten the cardinality assertion. Add five independent regression cases for valid files, extension filtering, folder-only mode and invalid selection limits.
Add a default-off colorfulTagAvatars flag to selected-tag avatars in
SharePoint pickers, FileFolderPicker and Form.TagPicker, including native
Property Pane fields. Keep colors tied to stable identities and preserve
existing selection data and default rendering.

Document the option and add demo toggles, regression and type coverage.
Share rendering with TagPicker while preserving selection, validation, focus and Property Pane lifecycle. Refine themed square avatars, full-width search and minimum-length placeholders; update samples, docs and regression coverage.
Ship 50 SharePoint cultures for eight resource families and register consumer mappings through an idempotent postinstall CLI. Add typed per-instance strings overrides while preserving Intl locales.

Update behavioral tests, package probes, samples and authenticated SharePoint validation instructions.

BREAKING CHANGE: EditableText.locale is removed in favor of strings. Consumers must register the toolkit native SPFx resources before bundling.
Bump library, root and sample workspace metadata to 3.0.0 while preserving the historical 2.1.0 compatibility fixtures. Update the release guard, consumer references and public documentation/JSDoc.
Add native Fluent Card appearance, size and titlePosition props with subtle, medium and outside defaults. Keep surface spacing outside the Card and preserve content identity across supported presentation updates.

Hide the complete title and action header when showTitle is false. Update public types, JSDoc, documentation, the SPFx demo and behavioral/browser coverage.
Include the distributed license texts for Markdown and Form schema dependencies and the pinned Unicode CLDR/PnP mapping notices. Preserve the existing artwork and Tiptap notices, and describe the current controls, hooks, providers, helpers, services and Property Pane surface.
@fabiofranzini
fabiofranzini merged commit e6a7faa into dev Oct 27, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant