* fix(deps): regenerate package-lock.json
Co-Authored-By: Claude Code <noreply@anthropic.com>
* fix(deps): regenerate package-lock.json
Moved @openedx/frontend-build from dependencies to devDependencies.
Removed direct jest devDependency which was causing ts-jest hoisting issues.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): use require() for MockedPluginSlot in jest.mock
Jest hoists jest.mock() calls to the top of the file, which caused
MockedPluginSlot to be undefined when the mock factory executed.
Using require() inside the factory ensures it loads at runtime.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(types): handle nullable breakpoint types
Paragon's breakpoint types now have optional minWidth/maxWidth properties.
Added non-null assertions since these values are always defined in practice.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): add IntlProvider to ContentIFrame tests
Paragon's ModalDialog now uses useIntl() (openedx/paragon#3624),
requiring an IntlProvider in the component ancestry.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): await async operations in Course tests
Fixed dangling waitFor blocks that weren't awaited, causing tests
to not actually wait for async operations. Changed to properly use
await with screen.findBy*() queries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): use dynamic imports in LearnerToolsSlot tests
Jest hoists mock calls but ES imports run before the test body.
Using dynamic imports in beforeEach ensures mocks are set up
before modules are loaded.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Code <noreply@anthropic.com>
This PR updates the unit title plugin to include all the elements that are part of the unit title, which includes the unit title, bookmark button, and navigation buttons (if left sidebar navigation is enabled).
This PR adds a plugin slot for the section list in the outline tab. This plugin can be used to add custom content before the list or add extra content to the titles for sections and subsections. To accomplish this, some of the smaller components inside Section and SequenceLink have been extrapolated into their own components so that they can be easily imported for use in plugins.
* fix(deps): update dependency @openedx/frontend-build to v14.3.2
* fix: 'unitId' PropType is defined but prop is never used
* fix: bump maximum allowed bundle size for now :/
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Braden MacDonald <braden@opencraft.com>
* feat: extend CourseOutlineSidebarTriggerSlot props
* feat: Remove courseId from CourseOutlineSidebarTriggerPlugin props
* feat: update useContextId to use courseware data along with coursehome
* feat: extend useCourseOutlineSidebar values with sequenceStatus
* feat: move unit next button slot to plugins folder
* feat: update unit navigation at top to use next unit plugin
* fix: remove 2u plugin specific code