Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
13b2db3
chore(docs-editor): integrate stub page editor from PR #7
calebroseland Jul 27, 2026
07d9a50
feat(docs): wire spaces and membership to the plugin REST API
calebroseland Jul 27, 2026
02323f4
chore(i18n): re-extract en.json after spaces-API wiring
calebroseland Jul 27, 2026
ba0848c
refactor(docs): drop the vestigial create-space URL field
calebroseland Jul 27, 2026
0c349ae
feat(docs): generic space-icon fallback and switcher recent polish
calebroseland Jul 27, 2026
2dd9e2e
revert(docs-editor): remove non-working stub page editor
calebroseland Jul 27, 2026
69edb2d
feat(docs): build the Space Home main content UI
calebroseland Jul 27, 2026
90c3651
feat(docs): wire space page and member count pipelines
calebroseland Jul 27, 2026
446989d
feat(docs): member avatars, Share modal, design-system buttons
calebroseland Jul 28, 2026
0bed473
feat(docs): nested, collapsible, drag-and-drop page tree
calebroseland Jul 28, 2026
08c30e5
feat(docs): people-search combobox for Share, gated on canManageMembers
calebroseland Jul 28, 2026
631754c
chore(docs): dev-ungate add-members; member count opens Share
calebroseland Jul 28, 2026
2c11e33
fix(docs): neutral grey for btn-icon buttons (port-to-core)
calebroseland Jul 28, 2026
777a5ee
refactor(docs): neutral toolbar buttons; form-controls -> form_controls
calebroseland Jul 28, 2026
d3b07d2
fix(docs): grey hover for neutral toolbar buttons
calebroseland Jul 28, 2026
eff0873
feat(docs): space menu, Settings modal, and Info panel
calebroseland Jul 28, 2026
ab1740a
fix(docs): match core btn-icon interaction states
calebroseland Jul 28, 2026
d6b9b35
fix:(docs) space header icon sizes
calebroseland Jul 28, 2026
886b312
refactor(docs): rename title/page bars to space/page header
calebroseland Jul 28, 2026
4c99648
feat(docs): reorder space view; sliding pages sidebar
calebroseland Jul 28, 2026
022c7fa
chore(webapp): bump preset-env browser floors
calebroseland Jul 28, 2026
042de1a
perf(webapp): code-split docs root; emit assets as files
calebroseland Jul 28, 2026
7bc8af0
refactor(docs): share a 56px product header
calebroseland Jul 28, 2026
3ac436b
feat(docs): build out space view, favorites, modal infra
calebroseland Jul 31, 2026
4cba8f5
feat(docs): make the page tree keyboard-navigable
calebroseland Aug 3, 2026
a74dc4a
feat(docs): let REST calls carry an abort signal
calebroseland Aug 3, 2026
226d01c
Merge origin/master into docs-wire-spaces-api
calebroseland Aug 3, 2026
a52705e
feat(docs): adapt the webapp shell for the page editor
calebroseland Aug 3, 2026
6b65482
feat(docs): address page edit mode with ?edit=1
calebroseland Aug 4, 2026
fca2d6c
feat(docs): add a PageTitle that reads or edits
calebroseland Aug 4, 2026
b04cdd6
feat(docs): toggle page edit mode from the header
calebroseland Aug 4, 2026
72223c9
feat(docs): save an inline title edit on commit
calebroseland Aug 4, 2026
0206074
fix(docs): guard against duplicate title writes in flight
calebroseland Aug 4, 2026
9aec0d4
fix(docs): commit the page title when edit mode exits
calebroseland Aug 4, 2026
8cbf75e
fix(docs): make edit mode reachable by keyboard and SR
calebroseland Aug 4, 2026
2ae72ba
test(docs): cover the Edit and Done directions
calebroseland Aug 4, 2026
08c4699
feat(docs): make the spaces sidebar resizable
calebroseland Aug 4, 2026
3987266
fix(docs): drop onto the space between page tree rows
calebroseland Aug 4, 2026
a35bd74
fix(docs): make the last position at a level droppable
calebroseland Aug 4, 2026
fd6e13e
fix(docs): quiet tooltips and indent the drop indicator
calebroseland Aug 4, 2026
5fdaccc
fix(docs): layer stacked modals instead of overlapping them
calebroseland Aug 4, 2026
eeabecf
fix(docs): layer a modal opened from inside another
calebroseland Aug 4, 2026
01fff6a
style(docs): keep covered modals opaque and animate modals in
calebroseland Aug 4, 2026
5ea70d9
fix(docs): animate modals out as well as in
calebroseland Aug 4, 2026
bf426c5
fix(docs): let modals animate in
calebroseland Aug 4, 2026
f984763
style(docs): soften how far a covered modal recedes
calebroseland Aug 4, 2026
7e522b5
style(docs): sink a covered modal instead of lifting it
calebroseland Aug 4, 2026
4e99805
style(docs): settle a covered modal by 2px
calebroseland Aug 4, 2026
26da9f1
fix(docs): pin popups to their trigger inside a modal
calebroseland Aug 4, 2026
cbc23fd
fix(docs): anchor the people picker popup to its field
calebroseland Aug 4, 2026
6e0476e
fix(docs): stop the select popup detaching from its trigger
calebroseland Aug 4, 2026
5f1adfe
fix(docs): keep resize handles clear of sidebar scrollbars
calebroseland Aug 4, 2026
18bc567
fix(docs): stop the pages sidebar clipping its resize handle
calebroseland Aug 4, 2026
89a4bfa
fix(docs): keep the viewer in the space after deleting a page
calebroseland Aug 4, 2026
0d3e455
fix(docs): place a reordered page where it was dropped
calebroseland Aug 4, 2026
d12fb17
feat(docs): open a newly created page in edit mode
calebroseland Aug 4, 2026
484cd58
fix(docs): replace rather than push when creating a page
calebroseland Aug 4, 2026
ddb140c
Revert "fix(docs): replace rather than push when creating a page"
calebroseland Aug 4, 2026
9d8c198
feat(docs): edit an unnamed page's title as a placeholder
calebroseland Aug 4, 2026
783b5d2
feat(docs): add the drafts data and store layer
calebroseland Aug 5, 2026
b3ec68b
feat(docs): create pages as drafts and publish them
calebroseland Aug 5, 2026
238220a
feat(docs): show unpublished pages in the page tree
calebroseland Aug 5, 2026
99c5ee1
feat(docs): make page tree rows links and give drafts a menu
calebroseland Aug 5, 2026
af3592a
feat(docs): give drafts view/edit modes and a publish control
calebroseland Aug 5, 2026
cc12d79
feat(docs): make spaces sidebar rows links
calebroseland Aug 5, 2026
9ef19bd
fix(docs): unclip row titles and drop link underlines
calebroseland Aug 5, 2026
7507f45
feat(docs): offer Publish while reading a draft
calebroseland Aug 5, 2026
13cbc98
feat(docs): add a reusable RHS with routed open state
calebroseland Aug 5, 2026
c8496a9
feat(docs): add a fullscreen mode for the page
calebroseland Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions webapp/babel.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ const config = {
presets: [
['@babel/preset-env', {
targets: {
chrome: 66,
firefox: 60,
edge: 42,
safari: 12,
chrome: 110,
firefox: 102,
edge: 110,
safari: '16.4',
},
modules: false,
corejs: 3,
Expand Down
190 changes: 182 additions & 8 deletions webapp/i18n/en.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
{
"docs.archiveSpace.confirm": "Yes, archive space",
"docs.archiveSpace.error.generic": "Something went wrong. Please try again.",
"docs.archiveSpace.error.title": "Unable to archive {name}",
"docs.archiveSpace.message": "Are you sure you want to archive the <b>{name}</b> space? Members will lose access until it is restored.",
"docs.archiveSpace.title": "Archive {name}",
"docs.basicInputModal.cancel": "Cancel",
"docs.basicInputModal.confirm": "Save",
"docs.comments.placeholder": "Comments on this page will appear here.",
"docs.comments.title": "Comments",
"docs.confirmModal.cancel": "Cancel",
"docs.confirmModal.confirm": "Confirm",
"docs.createSpace.cancel": "Cancel",
Expand All @@ -8,10 +17,6 @@
"docs.createSpace.error.description.tooLong": "Description must be {max} characters or fewer",
"docs.createSpace.error.name.required": "Please enter a name for the space",
"docs.createSpace.error.name.tooLong": "Name must be {max} characters or fewer",
"docs.createSpace.error.url.invalid": "Use lowercase letters, numbers, and dashes, with no spaces",
"docs.createSpace.error.url.required": "Please enter a URL for the space",
"docs.createSpace.error.url.taken": "That URL is already taken",
"docs.createSpace.error.url.tooLong": "URL must be {max} characters or fewer",
"docs.createSpace.nameLabel": "Space name",
"docs.createSpace.permissionsNote": "Specific edit and sharing permissions can be defined once the space is created.",
"docs.createSpace.private.description": "Only invited members",
Expand All @@ -20,8 +25,19 @@
"docs.createSpace.public.description": "Any team member can view",
"docs.createSpace.public.title": "Public Space",
"docs.createSpace.title": "Create a new space",
"docs.createSpace.urlAriaLabel": "Space URL",
"docs.createSpace.visibilityLabel": "Space visibility",
"docs.deletePage.confirm": "Delete",
"docs.deletePage.error": "Could not delete “{title}”.",
"docs.deletePage.message": "Are you sure you want to delete <b>{title}</b>? Its subpages will be deleted too.",
"docs.deletePage.title": "Delete page",
"docs.discardDraft.confirm": "Discard",
"docs.discardDraft.error": "Could not discard “{title}”.",
"docs.discardDraft.message": "Are you sure you want to discard <b>{title}</b>? It has never been published, so this cannot be undone.",
"docs.discardDraft.title": "Discard draft",
"docs.editor.header.draft": "Draft · {spaceId} / {pageId}",
"docs.editor.header.published": "Published · {spaceId} / {pageId}",
"docs.editor.hostMissing": "This Mattermost build does not publish the Docs editor. Update the server to edit pages here.",
"docs.editor.stub.body": "Editor is available and will mount here. Suggestion providers exposed: {providerCount}.",
"docs.form.url.edit": "Edit",
"docs.form.url.label": "URL:",
"docs.genericModal.close": "Close",
Expand Down Expand Up @@ -51,9 +67,77 @@
"docs.home.welcome.body": "Long-form knowledge for your team — documentation, specs, handbooks, decisions, postmortems. Every page lives in a Space which can be linked with Channels for convenience.",
"docs.home.welcome.title": "Welcome to Docs.",
"docs.leaveSpace.confirm": "Yes, leave space",
"docs.leaveSpace.error.generic": "Something went wrong. Please try again.",
"docs.leaveSpace.error.lastMember": "A space must keep at least one member with access. Add another member before you leave.",
"docs.leaveSpace.error.title": "Unable to leave {name}",
"docs.leaveSpace.message": "Are you sure you want to leave the <b>{name}</b> space? You can rejoin later if it is public.",
"docs.leaveSpace.title": "Leave {name}",
"docs.main.spaceOverview": "Space overview",
"docs.page.addEmoji": "Add emoji",
"docs.page.byAuthor": "By {name}",
"docs.page.headerImage": "Header image",
"docs.page.titleLabel": "Page title",
"docs.page.titleSaveFailed": "Could not rename the page. Please try again.",
"docs.page.untitled": "Untitled",
"docs.pageMenu.comingSoon": "Coming soon",
"docs.pageMenu.copyLink": "Copy link",
"docs.pageMenu.delete": "Delete page",
"docs.pageMenu.discard": "Discard draft",
"docs.pageMenu.draftLabel": "Draft options for {title}",
"docs.pageMenu.duplicate": "Duplicate page",
"docs.pageMenu.export": "Export",
"docs.pageMenu.export.markdown": "Markdown",
"docs.pageMenu.export.pdf": "PDF",
"docs.pageMenu.favorite": "Favorite",
"docs.pageMenu.label": "Page options for {title}",
"docs.pageMenu.moveTo": "Move to",
"docs.pageMenu.notifications": "Notifications",
"docs.pageMenu.notifications.all": "All activity",
"docs.pageMenu.notifications.mentions": "Mentions",
"docs.pageMenu.notifications.none": "Nothing",
"docs.pageMenu.openInNewWindow": "Open in new window",
"docs.pageMenu.openNewWindow": "Open in new window",
"docs.pageMenu.rename": "Rename",
"docs.pageMenu.sharing": "Sharing and Permissions",
"docs.pageMenu.unfavorite": "Remove from favorites",
"docs.pageMenu.versionHistory": "Version history",
"docs.pageTree.add": "Add page",
"docs.pageTree.addFailed": "Could not create the page. Please try again.",
"docs.pageTree.collapse": "Collapse {title}",
"docs.pageTree.draft": "Draft",
"docs.pageTree.expand": "Expand {title}",
"docs.pageTree.favorited": "Favorited",
"docs.pageTree.keyboardHelp": "Use the arrow keys to move through pages. Hold Alt with an arrow key to move the selected page up, down, in, or out.",
"docs.pageTree.menu": "Page options for {title}",
"docs.pageTree.moveBlocked": "Cannot move {title} any further in that direction.",
"docs.pageTree.moveFailed": "Could not move the page. Please try again.",
"docs.pageTree.moved": "Moved {title} to position {position} under {parent}.",
"docs.pageTree.nestBlocked": "Cannot nest {title} deeper than {levels} levels.",
"docs.pageTree.overview": "Overview",
"docs.pageTree.topLevel": "top level",
"docs.publish.failed": "Could not publish the page. Please try again.",
"docs.publish.parentUnpublished": "Publish the parent page first, then publish this one.",
"docs.renamePage.confirm": "Save",
"docs.renamePage.label": "Page name",
"docs.renamePage.title": "Rename page",
"docs.rhs.back": "Back to {name}",
"docs.rhs.close": "Close",
"docs.rhs.resize": "Resize {name}",
"docs.saveChanges.error": "There was an error saving your changes",
"docs.saveChanges.message": "You have unsaved changes",
"docs.saveChanges.reset": "Reset",
"docs.saveChanges.save": "Save",
"docs.share.access.canView": "Can View",
"docs.share.copyLink": "Copy link",
"docs.share.handle": "@{username}",
"docs.share.noResults": "No people found",
"docs.share.remove": "Remove {name}",
"docs.share.role.admin": "Admin",
"docs.share.search": "Add people or groups",
"docs.share.searching": "Searching…",
"docs.share.title": "Share space",
"docs.share.visibility.public": "Public",
"docs.share.visibility.publicHint": "Anyone in Mattermost",
"docs.share.you": "(You)",
"docs.sidebar.add.browse": "Browse spaces",
"docs.sidebar.add.create": "Create a space",
"docs.sidebar.add.menu": "Add or browse spaces",
Expand All @@ -63,11 +147,15 @@
"docs.sidebar.favorites.empty": "Drag favorite items here or click the star icon on any space",
"docs.sidebar.label": "Spaces",
"docs.sidebar.nav.home": "Home",
"docs.sidebar.resize": "Resize pages sidebar",
"docs.sidebar.resizeSpaces": "Resize spaces sidebar",
"docs.sidebar.search.placeholder": "Find docs",
"docs.sidebar.space.copyLink": "Copy link",
"docs.sidebar.space.favorite": "Add to favorites",
"docs.sidebar.space.favoritePartial": "Some pages are favorited",
"docs.sidebar.space.leave": "Leave space",
"docs.sidebar.space.menu": "Space options for {name}",
"docs.sidebar.space.menuShort": "Space options",
"docs.sidebar.space.unfavorite": "Remove from favorites",
"docs.sidebar.team.createTeam": "Create a team",
"docs.sidebar.team.invite": "Invite people",
Expand All @@ -77,11 +165,97 @@
"docs.sidebar.team.members": "Manage members",
"docs.sidebar.team.menu": "Manage {teamName}",
"docs.sidebar.team.settings": "Team settings",
"docs.switcher.group.recent": "Recent docs",
"docs.space.allSpaces": "All spaces",
"docs.space.close": "Close",
"docs.space.comments": "Comments",
"docs.space.descriptionPlaceholder": "Add a space description here — just a brief summary of the purpose for this space.",
"docs.space.details": "Space details",
"docs.space.edit": "Edit",
"docs.space.exitFullscreen": "Exit fullscreen",
"docs.space.expand": "Expand",
"docs.space.favorite": "Favorite this space",
"docs.space.favoritePartial": "Favorite this space (some pages are favorited)",
"docs.space.memberHandle": "@{username}",
"docs.space.membersButton": "Members",
"docs.space.membersOverflow": "+{count}",
"docs.space.menu": "Space options",
"docs.space.menu.archive": "Archive space",
"docs.space.menu.copyLink": "Copy link",
"docs.space.menu.info": "Space info",
"docs.space.menu.leave": "Leave space",
"docs.space.menu.members": "Members",
"docs.space.menu.settings": "Space settings",
"docs.space.more": "More actions",
"docs.space.noUnpublishedChanges": "No unpublished changes",
"docs.space.pages": "Pages",
"docs.space.publish": "Publish",
"docs.space.share": "Share",
"docs.space.stat.members": "Members",
"docs.space.stat.pages": "Pages",
"docs.space.stat.views": "Views",
"docs.space.unfavorite": "Remove from favorites",
"docs.space.update": "Update",
"docs.space.updated": "Updated {relative}",
"docs.spaceInfo.created": "Created",
"docs.spaceInfo.description": "Description",
"docs.spaceInfo.descriptionLabel": "Space description",
"docs.spaceInfo.descriptionPlaceholder": "Add a space description",
"docs.spaceInfo.editDescription": "Edit description",
"docs.spaceInfo.handle": "@{username}",
"docs.spaceInfo.members": "Members",
"docs.spaceInfo.menu.copyLink": "Copy link",
"docs.spaceInfo.menu.members": "Members",
"docs.spaceInfo.menu.settings": "Space settings",
"docs.spaceInfo.menu.title": "Space info actions",
"docs.spaceInfo.noDescription": "No description",
"docs.spaceInfo.pages": "Pages",
"docs.spaceInfo.title": "Space info",
"docs.spaceSettings.archive.button": "Archive space",
"docs.spaceSettings.archive.confirmBody": "“{title}” and its pages will be archived and members will lose access. This can be undone by an admin.",
"docs.spaceSettings.archive.confirmButton": "Archive",
"docs.spaceSettings.archive.confirmTitle": "Archive this space?",
"docs.spaceSettings.archive.copy": "Archiving removes this space and its pages from the team. Members will lose access. You can ask an admin to restore it later.",
"docs.spaceSettings.archive.heading": "Archive space",
"docs.spaceSettings.configuration.comingSoon": "Space configuration options are coming soon.",
"docs.spaceSettings.configuration.heading": "Configuration",
"docs.spaceSettings.discard.body": "Your unsaved changes to this space will be lost.",
"docs.spaceSettings.discard.confirm": "Discard changes",
"docs.spaceSettings.discard.title": "Discard unsaved changes?",
"docs.spaceSettings.info.descriptionHelper": "Describe how this space should be used. This will show when browsing spaces.",
"docs.spaceSettings.info.descriptionLabel": "Description",
"docs.spaceSettings.info.descriptionPlaceholder": "Enter a description for this space…",
"docs.spaceSettings.info.editUrl": "Edit",
"docs.spaceSettings.info.heading": "Space info",
"docs.spaceSettings.info.landingLabel": "Default landing page",
"docs.spaceSettings.info.landingSpaceHome": "Space home",
"docs.spaceSettings.info.nameLabel": "Space name",
"docs.spaceSettings.info.urlLabel": "Space URL",
"docs.spaceSettings.navLabel": "Space settings sections",
"docs.spaceSettings.permissions.accessHeading": "Space access",
"docs.spaceSettings.permissions.accessLabel": "Space access",
"docs.spaceSettings.permissions.externalSharing.comingSoon": "Coming soon",
"docs.spaceSettings.permissions.externalSharing.description": "Let people outside the team access this space with a link.",
"docs.spaceSettings.permissions.externalSharing.title": "External sharing",
"docs.spaceSettings.permissions.handle": "@{username}",
"docs.spaceSettings.permissions.peopleHeading": "People and groups with access",
"docs.spaceSettings.permissions.private.comingSoon": "Coming soon",
"docs.spaceSettings.permissions.private.description": "Only invited members can view this space.",
"docs.spaceSettings.permissions.private.title": "Private",
"docs.spaceSettings.permissions.public.description": "Anyone in the team can find and view this space.",
"docs.spaceSettings.permissions.public.title": "Public",
"docs.spaceSettings.permissions.role.admin": "Admin",
"docs.spaceSettings.permissions.searchPlaceholder": "Add people, groups or channels",
"docs.spaceSettings.tab.archive": "Archive space",
"docs.spaceSettings.tab.configuration": "Configuration",
"docs.spaceSettings.tab.info": "Info",
"docs.spaceSettings.tab.permissions": "Permissions",
"docs.spaceSettings.title": "Space Settings",
"docs.switcher.group.recent": "Recent",
"docs.switcher.group.results": "Spaces and pages",
"docs.switcher.group.spaces": "Your spaces",
"docs.switcher.noResults": "No spaces or pages found",
"docs.switcher.placeholder": "Search all spaces and pages",
"docs.switcher.title": "Find docs",
"docs.switcher.title.query": "Find spaces or pages"
"docs.switcher.title.query": "Find spaces or pages",
"docs.toast.close": "Close"
}
Loading
Loading