* feat(admin): add documentation helper link in HeaderLayout
Revival of #23328 (by @Mcastres), rebased on develop with review feedback
addressed and additional improvements:
- Replace hand-rolled find with react-router matchRoutes for proper path
matching and specificity ranking
- Update doc URLs to canonical docs.strapi.io paths (drop redirected
/user-docs/* and /dev-docs/* entries)
- Restore section anchors that were lost during doc-site reorganization
(#providers, #email-templates, #advanced-settings, profile, rbac)
- Align array path entries with actual registered admin routes (rename
/plugins/content-type-builder, /plugins/content-releases, settings
prefix for purchase-content-releases and list-plugins, drop dead
/marketplace external link)
- Add opt-out flag admin.flags.docLinks for white-label deployments
(requested by @derrickmehaffy)
- Memoize getMatchingDocLink result per pathname
- Place doc link button next to primary action via gap on parent Flex
(per @remidej review)
- Drop async from getMatchingDocLink, derive docLink synchronously from
pathname (per @remidej review)
Closes#23328
Co-authored-by: Maxime Castres <17828745+Mcastres@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(admin): move DocLink type to getMatchingDocLink module
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(admin): add docLinks flag to EE Window strapi type
The EE admin custom.d.ts redeclares window.strapi.flags and was missing
the docLinks property, causing test:ts:front to fail with TS2339 in
HeaderLayout.tsx.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* test: add getMachingDocLink tests
---------
Co-authored-by: Maxime Castres <17828745+Mcastres@users.noreply.github.com>
Co-authored-by: Ben Irvin <ben@innerdvations.com>
* fix: add params actually works
* fix: rename addInputParams
* test: fix register timing
* chore: update getstarted
* test(api): remove ai comment
* revert: do not merge in type unneccessarily
* revert: do not add type to route
* chore: restore complex attributes
(cherry picked from commit b278fe35b6)
* chore: add dynamic zone to about schema
(cherry picked from commit 09f2d1f056)
* feat: add content source maps service
* chore: refactor to fp and async.pipe
* chore: use header instead of query param
* fix: ignore polymorphic relations
* chore: add error handling
* fix: arrays of relations and medias
* enhancement(getstarted): show nested values in preview
* fix: update highlights when the dom changes
* fix: highlight dimensions after text update
* fix: strip away invisible characters from dom
* fix: don't encode slugs
* fix: handle fields in single components
* enhancement: add rawWithIndices to traverseEntity patj
* fix: handle components and repeatable components
* fix: strapi utils build
* fix: dynamic zones
* chore: use dots for array indices not brackets
* fix: content source map base url fallback
* chore: use URLSearchParams instead of URL
* chore: refinements
* test: fieldUtils testing
* fix: traverse-entity doc
* chore: add traverse-entity tests
* feat: scroll element into view on focus
* chore: make email clickable in dummy preview
* fix: single and double click behavior
* chore: use css hover instead of mouseenter
* enhancement: double click to edit notification
* fix: display translated errors
* fix: unit test
* fix: null blocks value
* enhancement: filter attributes in nested fields
* fix: prevent losing iframe pointer events after closing popover
* feat: add content source maps service
* chore: refactor to fp and async.pipe
* chore: use header instead of query param
* fix: ignore polymorphic relations
* chore: add error handling
* fix: arrays of relations and medias
* enhancement(getstarted): show nested values in preview
* fix: update highlights when the dom changes
* fix: highlight dimensions after text update
* fix: strip away invisible characters from dom
* fix: don't encode slugs
* chore: mark feedback
* chore: rearrange observers
* feat: add content source maps service
* chore: refactor to fp and async.pipe
* chore: use header instead of query param
* fix: ignore polymorphic relations
* chore: add error handling
* fix: arrays of relations and medias
* chore: marc feedback
* chore: use traverseEntity util
* fix: make backend unit test async
* chore: refactor types
* feat(content-manager): contional fields
* fix: remove logs
* fix: skip validation incase field has condition invisible
* chore: adding example
* chore: merge develop
* fix: filter out invisble fields
* test: add e2e tests
* fix: ensure that hidden fields are not validate or passed through at any point
* feat: add support for components and dz
* fix: saving relations on the fly
* fix: skipping test
* fix: dependencies
* feat: add support for Dynamic Zone
* fix: e2e tests
* feat(CTB): conditional fields (#23662)
* wip
* wip need to fix schema
* delete condition
* clean up
* feat: update condition form and related components, clean up logs, fix frontend
* fix: only add to the first section
* feat: add confirmation dialog and fixed UI
* chore: remove unused code
* chore: linting
* fix: display related filed names in warning dialog
---------
Co-authored-by: Bassel Kanso <bassel.kanso@strapi.io>
* fix: skip displaying hidden dynamic zone in history
* fix: ctb generate conditions for relation fields
* feat: add tracker for conditional field count (#23828)
* feat: add tracker for conditional field count
---------
Co-authored-by: Ziyi <ziyi.yuan@strapi.io>