├── .ci └── RISK_RULES.yaml ├── .claude └── agents │ └── elixir-code-reviewer.md ├── .codex └── prompts │ ├── analyze.md │ ├── architect.md │ ├── develop.md │ ├── plan.md │ └── scenario.md ├── .credo.exs ├── .cursor ├── README.md ├── cursor_tidewave_config_example.png ├── mcp.example.json ├── oli.example.mdc └── user-custom-rules.example.mdc ├── .devcontainer ├── Dockerfile ├── devcontainer.json ├── docker-compose.yml └── scripts │ └── init.sh ├── .dockerignore ├── .formatter.exs ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── actions │ └── amazon-linux-builder │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── action.yml │ │ └── entrypoint.sh └── workflows │ ├── ai-review.yml │ ├── amazon-linux-builder.yml │ ├── auto-deploy.yml │ ├── build.yml │ ├── danger.yml │ ├── deploy.yml │ ├── documentation.yml │ ├── jira.yml │ ├── log-deployment.yml │ ├── package.yml │ ├── preview-cleanup.yml │ ├── preview-deploy.yml │ └── validate_pr_title.yml ├── .gitignore ├── .review ├── CONTRACT.json ├── elixir.md ├── performance.md ├── requirements.md ├── security.md ├── typescript.md └── ui.md ├── .tool-versions ├── .vscode └── settings.json ├── .yarnrc ├── AGENTS.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE.md ├── README.md ├── assets ├── .eslintrc.json ├── .npmignore ├── .prettierrc ├── .storybook │ ├── main.js │ ├── preview-head.html │ └── preview.js ├── __mocks__ │ ├── empty.mock.js │ ├── monaco.mock.js │ └── react-markdown.mock.js ├── automation │ ├── .gitignore │ ├── .prettierrc │ ├── .tool-versions │ ├── PLATFORM_FEATURES.md │ ├── README.md │ ├── eslint.config.mjs │ ├── package-lock.json │ ├── package.json │ ├── playwright.config.ts │ ├── src │ │ ├── core │ │ │ ├── FileManager.ts │ │ │ ├── Table.ts │ │ │ ├── Utils.ts │ │ │ ├── decoration │ │ │ │ └── step.ts │ │ │ ├── fixture │ │ │ │ └── my-fixture.ts │ │ │ ├── verify │ │ │ │ └── Verifier.ts │ │ │ └── wait │ │ │ │ └── Waiter.ts │ │ └── systems │ │ │ └── torus │ │ │ ├── pom │ │ │ ├── activities │ │ │ │ ├── QuestionActivities.ts │ │ │ │ ├── QuestionImageHotspot.ts │ │ │ │ ├── QuestionLikertCO.ts │ │ │ │ ├── QuestionMultiCO.ts │ │ │ │ ├── QuestionResponseCO.ts │ │ │ │ └── QuestionVlabCO.ts │ │ │ ├── content │ │ │ │ ├── CodeBlock.ts │ │ │ │ ├── DescriptionListCO.ts │ │ │ │ ├── DialogCO.ts │ │ │ │ ├── InsertYouTubeCO.ts │ │ │ │ ├── PopUpCO.ts │ │ │ │ ├── SelectCitationCO.ts │ │ │ │ ├── SelectForeingLanguageCO.ts │ │ │ │ ├── SelectPageCO.ts │ │ │ │ ├── TermCO.ts │ │ │ │ └── WebPageCO.ts │ │ │ ├── course │ │ │ │ ├── CourseManagePO.ts │ │ │ │ ├── NewCourseSetupPO.ts │ │ │ │ └── StudentCoursePO.ts │ │ │ ├── dashboard │ │ │ │ ├── AdminDashboardPO.ts │ │ │ │ ├── AuthorDashboardPO.ts │ │ │ │ ├── InstructorDashboardPO.ts │ │ │ │ └── StudentDashboardPO.ts │ │ │ ├── home │ │ │ │ ├── LoginPO.ts │ │ │ │ ├── MenuDropdownCO.ts │ │ │ │ ├── NavbarCO.ts │ │ │ │ └── SidebarCO.ts │ │ │ ├── page │ │ │ │ ├── BasicPracticePagePO.ts │ │ │ │ ├── PagePreviewPO.ts │ │ │ │ └── SelectMultimediaCO.ts │ │ │ ├── product │ │ │ │ ├── ProductOverviewPO.ts │ │ │ │ └── ProductsPO.ts │ │ │ ├── project │ │ │ │ ├── CurriculumPO.ts │ │ │ │ ├── OverviewProjectPO.ts │ │ │ │ └── PublishProjectPO.ts │ │ │ └── types │ │ │ │ ├── type-activity.ts │ │ │ │ ├── type-license-options.ts │ │ │ │ ├── type-programming-language.ts │ │ │ │ ├── type-select-multemedia.ts │ │ │ │ ├── type-toolbar.ts │ │ │ │ ├── type-user.ts │ │ │ │ └── types-language.ts │ │ │ └── tasks │ │ │ ├── AdministrationTask.ts │ │ │ ├── CurriculumTask.ts │ │ │ ├── HomeTask.ts │ │ │ ├── ProjectTask.ts │ │ │ ├── StudentTask.ts │ │ │ └── data │ │ │ └── data-project-task.ts │ ├── tests │ │ ├── resources │ │ │ ├── config.env │ │ │ ├── example.env │ │ │ ├── media_files │ │ │ │ ├── audio-test-01.mp3 │ │ │ │ ├── img-mock-05-16-2025.jpg │ │ │ │ └── video-test-01.mp4 │ │ │ └── readme.txt │ │ └── torus │ │ │ ├── config.spec.ts │ │ │ ├── course_authoring │ │ │ └── course-authoring.spec.ts │ │ │ ├── instructor │ │ │ └── instructor.spec.ts │ │ │ ├── test-data.ts │ │ │ └── user_accounts │ │ │ └── user-accounts.spec.ts │ ├── tsconfig.json │ └── tslint.json ├── babel.config.js ├── css │ ├── app.css │ ├── bootstrap-shims.css │ ├── bs │ │ ├── accordion.css │ │ ├── dropdown.css │ │ ├── modal.css │ │ ├── nav-tabs.css │ │ ├── offcanvas.css │ │ ├── popover.css │ │ ├── spinner.css │ │ ├── switch.css │ │ └── tooltip.css │ ├── button.css │ ├── input.css │ ├── markdown-editor.css │ ├── table.css │ ├── text.css │ └── transitions.css ├── jest.config.js ├── package.json ├── sdk │ └── package.json ├── setup-tests.js ├── src │ ├── actions │ │ ├── media.ts │ │ └── modal.ts │ ├── adaptivity │ │ ├── capi.ts │ │ ├── janus-scripts │ │ │ └── builtin_functions.ts │ │ ├── operators │ │ │ ├── contains.ts │ │ │ ├── equality.ts │ │ │ ├── math.ts │ │ │ └── range.ts │ │ ├── rules-engine.ts │ │ ├── rules.ts │ │ └── scripting.ts │ ├── apps │ │ ├── ActivityBankApp.tsx │ │ ├── AuthoringApp.tsx │ │ ├── BibliographyApp.tsx │ │ ├── Components.tsx │ │ ├── DeliveryApp.tsx │ │ ├── OfflineDetector.tsx │ │ ├── PageEditorApp.tsx │ │ ├── ResourceEditor.scss │ │ ├── SchedulerApp.tsx │ │ ├── app.tsx │ │ ├── authoring │ │ │ ├── Authoring.tsx │ │ │ ├── AuthoringContainer.tsx │ │ │ ├── AuthoringExpertPageEditor.tsx │ │ │ ├── AuthoringFlowchartPageEditor.tsx │ │ │ ├── BottomPanel.tsx │ │ │ ├── ReadOnlyWarning.tsx │ │ │ ├── components │ │ │ │ ├── Accordion │ │ │ │ │ └── ContextAwareToggle.tsx │ │ │ │ ├── AdaptiveRulesList │ │ │ │ │ ├── AdaptiveRuleContextMenu.tsx │ │ │ │ │ └── AdaptiveRulesList.tsx │ │ │ │ ├── AdaptivityEditor │ │ │ │ │ ├── ActionFeedbackEditor.tsx │ │ │ │ │ ├── ActionMutateEditor.tsx │ │ │ │ │ ├── ActionNavigationEditor.tsx │ │ │ │ │ ├── AdaptiveItemOptions.ts │ │ │ │ │ ├── AdaptivityEditor.tsx │ │ │ │ │ ├── ConditionItemEditor.tsx │ │ │ │ │ ├── ConditionsBlockEditor.tsx │ │ │ │ │ ├── InitStateEditor.tsx │ │ │ │ │ └── VariablePicker.tsx │ │ │ │ ├── AdvancedAuthoringModal.tsx │ │ │ │ ├── ComponentToolbar │ │ │ │ │ ├── AddComponentToolbar.tsx │ │ │ │ │ ├── ComponentSearchContextMenu.tsx │ │ │ │ │ └── UndoRedoToolbar.tsx │ │ │ │ ├── EditingCanvas │ │ │ │ │ ├── AuthoringActivityRenderer.tsx │ │ │ │ │ ├── ConfigurationModal.tsx │ │ │ │ │ ├── EditingCanvas.tsx │ │ │ │ │ └── StagePan.tsx │ │ │ │ ├── ExpertHeaderNav.tsx │ │ │ │ ├── Flowchart │ │ │ │ │ ├── FlowchartComponent.tsx │ │ │ │ │ ├── FlowchartEditor.tsx │ │ │ │ │ ├── FlowchartErrorMessages.tsx │ │ │ │ │ ├── FlowchartEventContext.tsx │ │ │ │ │ ├── FlowchartModeOptions.tsx │ │ │ │ │ ├── TemplateExporter.tsx │ │ │ │ │ ├── TemplatePicker.tsx │ │ │ │ │ ├── chart-components │ │ │ │ │ │ ├── FloatingConnectionLine.tsx │ │ │ │ │ │ ├── FloatingEdge.tsx │ │ │ │ │ │ ├── FlowchartIcon.tsx │ │ │ │ │ │ ├── PlaceholderEdge.tsx │ │ │ │ │ │ ├── PlaceholderNode.tsx │ │ │ │ │ │ ├── ScreenButton.tsx │ │ │ │ │ │ ├── ScreenDeleteIcon.tsx │ │ │ │ │ │ ├── ScreenDuplicateIcon.tsx │ │ │ │ │ │ ├── ScreenEditIcon.tsx │ │ │ │ │ │ ├── ScreenIcon.tsx │ │ │ │ │ │ ├── ScreenNode.tsx │ │ │ │ │ │ ├── StartNode.tsx │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── flowchart-actions │ │ │ │ │ │ ├── add-path.ts │ │ │ │ │ │ ├── add-screen.ts │ │ │ │ │ │ ├── apply-template.ts │ │ │ │ │ │ ├── change-title.ts │ │ │ │ │ │ ├── delete-path.ts │ │ │ │ │ │ ├── delete-screen.ts │ │ │ │ │ │ ├── duplicate-screen.ts │ │ │ │ │ │ ├── onboard-wizard-complete.ts │ │ │ │ │ │ ├── replace-path.ts │ │ │ │ │ │ └── verify-flowchart-lesson.ts │ │ │ │ │ ├── flowchart-data.md │ │ │ │ │ ├── flowchart-layout.ts │ │ │ │ │ ├── flowchart-selectors.ts │ │ │ │ │ ├── flowchart-utils.tsx │ │ │ │ │ ├── onboard-wizard │ │ │ │ │ │ ├── D20.tsx │ │ │ │ │ │ ├── D6.tsx │ │ │ │ │ │ ├── Landscape.tsx │ │ │ │ │ │ ├── LeftArrow.tsx │ │ │ │ │ │ ├── OnboardWizard.tsx │ │ │ │ │ │ ├── Portrait.tsx │ │ │ │ │ │ └── RightArrow.tsx │ │ │ │ │ ├── paths │ │ │ │ │ │ ├── path-factories.ts │ │ │ │ │ │ ├── path-options.ts │ │ │ │ │ │ ├── path-types.ts │ │ │ │ │ │ ├── path-utils.ts │ │ │ │ │ │ └── path-validation.ts │ │ │ │ │ ├── rules │ │ │ │ │ │ ├── create-all-correct-workflow.ts │ │ │ │ │ │ ├── create-cata-choice-rules.ts │ │ │ │ │ │ ├── create-condition.ts │ │ │ │ │ │ ├── create-dropdown-rules.ts │ │ │ │ │ │ ├── create-feedback-action.ts │ │ │ │ │ │ ├── create-generic-rule.ts │ │ │ │ │ │ ├── create-hub-spoke-rules.ts │ │ │ │ │ │ ├── create-multiline-text-rules.ts │ │ │ │ │ │ ├── create-multiple-choice-rules.ts │ │ │ │ │ │ ├── create-navigation-action.ts │ │ │ │ │ │ ├── create-number-input-rules.ts │ │ │ │ │ │ ├── create-slider-rules.ts │ │ │ │ │ │ ├── create-state-action.ts │ │ │ │ │ │ ├── create-text-input-rules.ts │ │ │ │ │ │ ├── create-three-try-workflow.ts │ │ │ │ │ │ └── rule-compilation.ts │ │ │ │ │ ├── screen-icons │ │ │ │ │ │ ├── BlankScreenIcon.tsx │ │ │ │ │ │ ├── DropdownScreenIcon.tsx │ │ │ │ │ │ ├── EndScreenIcon.tsx │ │ │ │ │ │ ├── HubSpokeIcon.tsx │ │ │ │ │ │ ├── MultilineTextScreenIcon.tsx │ │ │ │ │ │ ├── MultipleChoiceScreenIcon.tsx │ │ │ │ │ │ ├── NumberInputScreenIcon.tsx │ │ │ │ │ │ ├── SliderScreenIcon.tsx │ │ │ │ │ │ ├── TextInputScreenIcon.tsx │ │ │ │ │ │ ├── WelcomeScreenIcon.tsx │ │ │ │ │ │ └── screen-icons.tsx │ │ │ │ │ ├── screens │ │ │ │ │ │ ├── screen-factories.ts │ │ │ │ │ │ ├── screen-utils.ts │ │ │ │ │ │ └── screen-validation.tsx │ │ │ │ │ ├── sidebar │ │ │ │ │ │ ├── CloseIcon.tsx │ │ │ │ │ │ ├── FlowchartSidebar.tsx │ │ │ │ │ │ ├── InfoIcon.tsx │ │ │ │ │ │ ├── PathEditor.tsx │ │ │ │ │ │ ├── PathsEditor.tsx │ │ │ │ │ │ └── ScreenTitle.tsx │ │ │ │ │ ├── template-types.ts │ │ │ │ │ ├── template-utils.ts │ │ │ │ │ ├── templates.ts │ │ │ │ │ └── toolbar │ │ │ │ │ │ ├── AudioIcon.tsx │ │ │ │ │ │ ├── CarouselIcon.tsx │ │ │ │ │ │ ├── CheckboxIcon.tsx │ │ │ │ │ │ ├── DropdownIcon.tsx │ │ │ │ │ │ ├── FlowchartHeaderNav.tsx │ │ │ │ │ │ ├── FlowchartTopToolbar.tsx │ │ │ │ │ │ ├── FormulaIcon.tsx │ │ │ │ │ │ ├── HubSpokeIcon.tsx │ │ │ │ │ │ ├── IframeIcon.tsx │ │ │ │ │ │ ├── ImageIcon.tsx │ │ │ │ │ │ ├── InvalidScreenWarning.tsx │ │ │ │ │ │ ├── MultilineIcon.tsx │ │ │ │ │ │ ├── NumberInputIcon.tsx │ │ │ │ │ │ ├── ParagraphIcon.tsx │ │ │ │ │ │ ├── PasteIcon.tsx │ │ │ │ │ │ ├── PopupIcon.tsx │ │ │ │ │ │ ├── PreviewIcon.tsx │ │ │ │ │ │ ├── RedoIcon.tsx │ │ │ │ │ │ ├── ReorderingIcon.tsx │ │ │ │ │ │ ├── ScoringIcon.tsx │ │ │ │ │ │ ├── SliderIcon.tsx │ │ │ │ │ │ ├── TextInputIcon.tsx │ │ │ │ │ │ ├── ToolbarItem.tsx │ │ │ │ │ │ ├── UndoIcon.tsx │ │ │ │ │ │ ├── VideoIcon.tsx │ │ │ │ │ │ └── toolbar-icons.tsx │ │ │ │ ├── LeftMenu │ │ │ │ │ └── LeftMenu.tsx │ │ │ │ ├── Modal │ │ │ │ │ ├── BulkQuestionsImport.tsx │ │ │ │ │ ├── DeleteConfirmationModal.tsx │ │ │ │ │ ├── DiagnosticsWindow.tsx │ │ │ │ │ ├── MediaPickerModal.tsx │ │ │ │ │ ├── ScoringOverview.tsx │ │ │ │ │ ├── ShowInformationModal.tsx │ │ │ │ │ └── diagnostics │ │ │ │ │ │ ├── DiagnosticMessage.tsx │ │ │ │ │ │ ├── DiagnosticSolution.tsx │ │ │ │ │ │ ├── DiagnosticTypes.ts │ │ │ │ │ │ ├── FixBrokenPathButton.tsx │ │ │ │ │ │ ├── FixIdButton.tsx │ │ │ │ │ │ ├── FixTargetButton.tsx │ │ │ │ │ │ ├── SolutionProps.ts │ │ │ │ │ │ └── actions.ts │ │ │ │ ├── PropertyEditor │ │ │ │ │ ├── PropertyEditor.tsx │ │ │ │ │ ├── custom │ │ │ │ │ │ ├── AccordionTemplate.tsx │ │ │ │ │ │ ├── AdvancedFeedbackNumberRange.tsx │ │ │ │ │ │ ├── ColorPickerWidget.tsx │ │ │ │ │ │ ├── CompJsonEditor.tsx │ │ │ │ │ │ ├── CustomCheckbox.tsx │ │ │ │ │ │ ├── CustomFieldTemplate.tsx │ │ │ │ │ │ ├── DropdownOptionsEditor.tsx │ │ │ │ │ │ ├── LearningObjectivesEditor.tsx │ │ │ │ │ │ ├── LearningObjectivesModal.tsx │ │ │ │ │ │ ├── MCQCorrectAnswerEditor.tsx │ │ │ │ │ │ ├── MCQCustomErrorFeedbackAuthoring.tsx │ │ │ │ │ │ ├── MCQOptionsEditor.tsx │ │ │ │ │ │ ├── OptionsCorrectPicker.tsx │ │ │ │ │ │ ├── OptionsCustomErrorFeedbackAuthoring.tsx │ │ │ │ │ │ ├── ScreenDropdownTemplate.tsx │ │ │ │ │ │ ├── SequenceDropdown.tsx │ │ │ │ │ │ ├── SliderOptionsTextEditor.tsx │ │ │ │ │ │ ├── SpokeCompletedOption.tsx │ │ │ │ │ │ ├── SpokeCustomErrorFeedbackAuthoring.tsx │ │ │ │ │ │ ├── SpokeOptionsEditor.tsx │ │ │ │ │ │ ├── TorusAudioBrowser.tsx │ │ │ │ │ │ ├── TorusImageBrowser.tsx │ │ │ │ │ │ ├── TorusMediaBrowserWrapper.tsx │ │ │ │ │ │ ├── TorusVideoBrowser.tsx │ │ │ │ │ │ └── VariableEditor.tsx │ │ │ │ │ └── schemas │ │ │ │ │ │ ├── bank.ts │ │ │ │ │ │ ├── bankScreen.ts │ │ │ │ │ │ ├── lesson.ts │ │ │ │ │ │ ├── part.ts │ │ │ │ │ │ └── screen.ts │ │ │ │ ├── RightMenu │ │ │ │ │ ├── PartPropertyEditor.tsx │ │ │ │ │ └── RightMenu.tsx │ │ │ │ ├── ScreenList │ │ │ │ │ ├── AddScreenModal.tsx │ │ │ │ │ └── ScreenList.tsx │ │ │ │ ├── SequenceEditor │ │ │ │ │ ├── SequenceEditor.tsx │ │ │ │ │ └── SequenceItemContextMenu.tsx │ │ │ │ └── SidePanel.tsx │ │ │ ├── store │ │ │ │ ├── activities │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── createFeedback.ts │ │ │ │ │ │ ├── createNew.ts │ │ │ │ │ │ ├── objectives.ts │ │ │ │ │ │ ├── rules.ts │ │ │ │ │ │ └── saveActivity.ts │ │ │ │ │ └── templates │ │ │ │ │ │ ├── activity.ts │ │ │ │ │ │ └── simpleText.ts │ │ │ │ ├── app │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── locking.ts │ │ │ │ │ │ └── readonly.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── clipboard │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── flowchart │ │ │ │ │ ├── flowchart-slice.ts │ │ │ │ │ └── name.ts │ │ │ │ ├── groups │ │ │ │ │ └── layouts │ │ │ │ │ │ └── deck │ │ │ │ │ │ └── actions │ │ │ │ │ │ ├── addSequenceItem.ts │ │ │ │ │ │ ├── createNew.ts │ │ │ │ │ │ ├── setCurrentActivityFromSequence.ts │ │ │ │ │ │ ├── updateActivityPartInheritance.ts │ │ │ │ │ │ ├── updateActivityRules.ts │ │ │ │ │ │ ├── updateSequenceItemFromActivity.ts │ │ │ │ │ │ └── validate.ts │ │ │ │ ├── history │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── redo.ts │ │ │ │ │ │ └── undo.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── index.ts │ │ │ │ ├── page │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── initializeFromContext.ts │ │ │ │ │ │ └── savePage.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── parts │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── addPart.ts │ │ │ │ │ │ └── updatePart.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── persistance-options.ts │ │ │ │ ├── rootReducer.ts │ │ │ │ ├── slices.ts │ │ │ │ └── storybook.ts │ │ │ └── types.ts │ │ ├── bank │ │ │ ├── ActivityBank.modules.scss │ │ │ ├── ActivityBank.tsx │ │ │ ├── CreateActivity.tsx │ │ │ ├── DeleteActivity.tsx │ │ │ ├── EditButton.tsx │ │ │ └── LogicFilter.tsx │ │ ├── bibliography │ │ │ ├── BibEntryEditor.tsx │ │ │ ├── BibEntryView.tsx │ │ │ ├── Bibliography.tsx │ │ │ ├── DeleteBibEntry.tsx │ │ │ ├── EditBibEntry.tsx │ │ │ ├── PlainEntryEditor.tsx │ │ │ ├── References.tsx │ │ │ ├── citation_model.ts │ │ │ ├── common.ts │ │ │ └── csl-data-schema.json │ │ ├── delivery │ │ │ ├── Delivery.tsx │ │ │ ├── components │ │ │ │ ├── ActivityRenderer.tsx │ │ │ │ ├── NotificationContext.tsx │ │ │ │ ├── PreviewTools.tsx │ │ │ │ └── preview-tools │ │ │ │ │ ├── Adaptivity.tsx │ │ │ │ │ ├── Inspector.tsx │ │ │ │ │ ├── ScreenSelector.tsx │ │ │ │ │ └── inspector │ │ │ │ │ ├── AutoDetectInput.tsx │ │ │ │ │ ├── NestedStateDisplay.tsx │ │ │ │ │ ├── StateDisplay.tsx │ │ │ │ │ └── utils.ts │ │ │ ├── layouts │ │ │ │ ├── deck │ │ │ │ │ ├── DeadlineTimer.tsx │ │ │ │ │ ├── DeckLayoutFooter.tsx │ │ │ │ │ ├── DeckLayoutHeader.tsx │ │ │ │ │ ├── DeckLayoutView.tsx │ │ │ │ │ ├── EverApps.ts │ │ │ │ │ ├── IdleTimeOutDialog.tsx │ │ │ │ │ ├── LessonDeadlineDialog.tsx │ │ │ │ │ ├── LessonFinishedDialog.tsx │ │ │ │ │ ├── RestartLessonDialog.tsx │ │ │ │ │ └── components │ │ │ │ │ │ ├── EverappContainer.tsx │ │ │ │ │ │ ├── EverappMenu.tsx │ │ │ │ │ │ ├── EverappRenderer.tsx │ │ │ │ │ │ ├── FeedbackContainer.tsx │ │ │ │ │ │ ├── FeedbackRenderer.tsx │ │ │ │ │ │ ├── HistoryNavigation.tsx │ │ │ │ │ │ ├── HistoryPanel.tsx │ │ │ │ │ │ ├── OptionsPanel.tsx │ │ │ │ │ │ ├── ReviewModeHistoryPanel.tsx │ │ │ │ │ │ └── ReviewModeNavigation.tsx │ │ │ │ └── layouts.ts │ │ │ └── store │ │ │ │ ├── features │ │ │ │ ├── activities │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── adaptivity │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── applyStateChange.ts │ │ │ │ │ │ ├── getLocalizedCurrentStateSnapshot.ts │ │ │ │ │ │ └── triggerCheck.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── attempt │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── createActivityAttempt.ts │ │ │ │ │ │ ├── savePart.ts │ │ │ │ │ │ └── submitActivity.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── groups │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── deck.ts │ │ │ │ │ │ ├── navUtils.ts │ │ │ │ │ │ └── sequence.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ ├── selectors │ │ │ │ │ │ └── deck.ts │ │ │ │ │ └── slice.ts │ │ │ │ └── page │ │ │ │ │ ├── actions │ │ │ │ │ ├── loadInitialPageState.ts │ │ │ │ │ └── toggleEverapp.ts │ │ │ │ │ ├── name.ts │ │ │ │ │ └── slice.ts │ │ │ │ ├── index.ts │ │ │ │ └── rootReducer.ts │ │ ├── page-editor │ │ │ ├── PageEditor.tsx │ │ │ ├── PageTriggerEditor.tsx │ │ │ ├── listeners.ts │ │ │ └── types.ts │ │ └── scheduler │ │ │ ├── ContextMenu.tsx │ │ │ ├── ContextMenuController.tsx │ │ │ ├── DragBar.tsx │ │ │ ├── ErrorDisplay.tsx │ │ │ ├── PageDragBar.tsx │ │ │ ├── PageScheduleLine.tsx │ │ │ ├── ScheduleEditor.tsx │ │ │ ├── ScheduleGrid.tsx │ │ │ ├── ScheduleHeader.tsx │ │ │ ├── ScheduleLine.tsx │ │ │ ├── SchedulePlaceholder.tsx │ │ │ ├── ScheduleSlideout.tsx │ │ │ ├── SchedulerSaveBar.tsx │ │ │ ├── WeekdayPicker.tsx │ │ │ ├── date-utils.tsx │ │ │ ├── schedule-reset.ts │ │ │ ├── schedule-selectors.ts │ │ │ ├── scheduler-reducer.ts │ │ │ ├── scheduler-slice.ts │ │ │ ├── scheduling-service.ts │ │ │ └── scheduling-thunk.ts │ ├── components │ │ ├── ContentTable.tsx │ │ ├── Dialog.tsx │ │ ├── TextEditor.tsx │ │ ├── TriggerButton.tsx │ │ ├── TriggerGroupButton.tsx │ │ ├── activities │ │ │ ├── ActivityErrorDisplay.tsx │ │ │ ├── AuthoringElement.ts │ │ │ ├── AuthoringElementProvider.tsx │ │ │ ├── DeliveryElement.ts │ │ │ ├── DeliveryElementProvider.tsx │ │ │ ├── adaptive │ │ │ │ ├── AdaptiveAuthoring.scss │ │ │ │ ├── AdaptiveAuthoring.tsx │ │ │ │ ├── AdaptiveDelivery.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── components │ │ │ │ │ ├── authoring │ │ │ │ │ │ ├── AddPartToolbar.tsx │ │ │ │ │ │ ├── LayoutEditor.tsx │ │ │ │ │ │ ├── ResizeContainer.tsx │ │ │ │ │ │ ├── ScreenAuthor.modules.scss │ │ │ │ │ │ └── ScreenAuthor.tsx │ │ │ │ │ ├── common │ │ │ │ │ │ ├── PartComponent.tsx │ │ │ │ │ │ ├── UnknownPart.tsx │ │ │ │ │ │ └── util.ts │ │ │ │ │ └── delivery │ │ │ │ │ │ └── PartsLayoutRenderer.tsx │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── check_all_that_apply │ │ │ │ ├── CheckAllThatApplyAuthoring.tsx │ │ │ │ ├── CheckAllThatApplyDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ ├── studentResponses.json │ │ │ │ ├── transformations │ │ │ │ │ ├── v1.ts │ │ │ │ │ └── v2.ts │ │ │ │ └── utils.ts │ │ │ ├── common │ │ │ │ ├── DisplayedHints.tsx │ │ │ │ ├── DisplayedStem.tsx │ │ │ │ ├── Reset.tsx │ │ │ │ ├── ScoreAsYouGoHeader.tsx │ │ │ │ ├── ScoreAsYouGoSubmitReset.tsx │ │ │ │ ├── authoring │ │ │ │ │ ├── AuthoringButton.tsx │ │ │ │ │ ├── AuthoringCheckbox.tsx │ │ │ │ │ ├── GradingApproachDropdown.tsx │ │ │ │ │ ├── InputTypeDropdown.tsx │ │ │ │ │ ├── RemoveButton.tsx │ │ │ │ │ ├── RespondedUsersList.tsx │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── multipleChoiceActions.ts │ │ │ │ │ │ ├── scoringActions.ts │ │ │ │ │ │ └── stemActions.ts │ │ │ │ │ └── settings │ │ │ │ │ │ ├── ActivitySettings.tsx │ │ │ │ │ │ └── activitySettingsActions.ts │ │ │ │ ├── choices │ │ │ │ │ ├── authoring │ │ │ │ │ │ ├── ChoicesAuthoring.modules.scss │ │ │ │ │ │ └── ChoicesAuthoring.tsx │ │ │ │ │ └── delivery │ │ │ │ │ │ ├── ChoicesDelivery.modules.scss │ │ │ │ │ │ ├── ChoicesDelivery.tsx │ │ │ │ │ │ ├── ChoicesDeliveryConnected.tsx │ │ │ │ │ │ └── LabelledChoices.tsx │ │ │ │ ├── delivery │ │ │ │ │ ├── SubmitReset.tsx │ │ │ │ │ ├── evaluation │ │ │ │ │ │ ├── Evaluation.tsx │ │ │ │ │ │ ├── EvaluationConnected.tsx │ │ │ │ │ │ └── Submission.tsx │ │ │ │ │ ├── graded_points │ │ │ │ │ │ ├── GradedPoints.tsx │ │ │ │ │ │ └── GradedPointsConnected.tsx │ │ │ │ │ ├── inputs │ │ │ │ │ │ ├── DropdownInput.tsx │ │ │ │ │ │ ├── HintsBadge.tsx │ │ │ │ │ │ ├── MathInput.tsx │ │ │ │ │ │ ├── NumericInput.tsx │ │ │ │ │ │ ├── TextInput.tsx │ │ │ │ │ │ ├── TextareaInput.tsx │ │ │ │ │ │ └── VlabInput.tsx │ │ │ │ │ ├── persistence.ts │ │ │ │ │ ├── reset_button │ │ │ │ │ │ ├── ResetButton.tsx │ │ │ │ │ │ └── ResetButtonConnected.tsx │ │ │ │ │ └── submit_button │ │ │ │ │ │ ├── SubmitButton.tsx │ │ │ │ │ │ └── SubmitButtonConnected.tsx │ │ │ │ ├── explanation │ │ │ │ │ └── ExplanationAuthoring.tsx │ │ │ │ ├── hints │ │ │ │ │ ├── authoring │ │ │ │ │ │ ├── HintCard.tsx │ │ │ │ │ │ ├── HintsAuthoring.tsx │ │ │ │ │ │ └── HintsAuthoringConnected.tsx │ │ │ │ │ └── delivery │ │ │ │ │ │ ├── HintsDelivery.tsx │ │ │ │ │ │ └── HintsDeliveryConnected.tsx │ │ │ │ ├── responses │ │ │ │ │ ├── ActivityScoring.tsx │ │ │ │ │ ├── FeedbackCard.tsx │ │ │ │ │ ├── ResponseCard.tsx │ │ │ │ │ ├── ScoreInput.tsx │ │ │ │ │ ├── ShowPage.tsx │ │ │ │ │ ├── SimpleFeedback.tsx │ │ │ │ │ ├── StudentResponses.tsx │ │ │ │ │ ├── TargetedFeedback.tsx │ │ │ │ │ └── responseActions.ts │ │ │ │ ├── stem │ │ │ │ │ ├── authoring │ │ │ │ │ │ ├── StemAuthoring.tsx │ │ │ │ │ │ └── StemAuthoringConnected.tsx │ │ │ │ │ └── delivery │ │ │ │ │ │ ├── StemDelivery.scss │ │ │ │ │ │ └── StemDelivery.tsx │ │ │ │ ├── triggers │ │ │ │ │ ├── TriggerActions.tsx │ │ │ │ │ ├── TriggerAuthoring.tsx │ │ │ │ │ └── TriggerUtils.tsx │ │ │ │ ├── utils.tsx │ │ │ │ └── variables │ │ │ │ │ ├── VariableEditorFacade.tsx │ │ │ │ │ ├── VariableEditorOrNot.tsx │ │ │ │ │ ├── WrappedMonaco.tsx │ │ │ │ │ ├── firstgen │ │ │ │ │ ├── VariablesEditor.scss │ │ │ │ │ └── VariablesEditor.tsx │ │ │ │ │ ├── secondgen │ │ │ │ │ ├── ModuleEditor.scss │ │ │ │ │ ├── ModuleEditor.tsx │ │ │ │ │ ├── ResultsPanel.scss │ │ │ │ │ ├── ResultsPanel.tsx │ │ │ │ │ ├── SourcePanel.scss │ │ │ │ │ ├── SourcePanel.tsx │ │ │ │ │ ├── TestResults.scss │ │ │ │ │ └── TestResults.tsx │ │ │ │ │ └── variableActions.ts │ │ │ ├── creation.ts │ │ │ ├── custom_dnd │ │ │ │ ├── AnswerKey.tsx │ │ │ │ ├── CustomDnDAuthoring.tsx │ │ │ │ ├── CustomDnDDelivery.tsx │ │ │ │ ├── DragCanvas.tsx │ │ │ │ ├── FocusedFeedback.tsx │ │ │ │ ├── FocusedHints.tsx │ │ │ │ ├── HintsEditor.tsx │ │ │ │ ├── PartManager.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── directed-discussion │ │ │ │ ├── DirectedDiscussionAuthoring.tsx │ │ │ │ ├── DirectedDiscussionDelivery.tsx │ │ │ │ ├── ParticipationInput.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── discussion │ │ │ │ │ ├── CreatePost.tsx │ │ │ │ │ ├── DirectedDiscussion.tsx │ │ │ │ │ ├── DiscussionParticipation.tsx │ │ │ │ │ ├── DiscussionParticipationAuthoring.tsx │ │ │ │ │ ├── DiscussionSearchResults.tsx │ │ │ │ │ ├── DiscussionSearchSortBar.tsx │ │ │ │ │ ├── DiscussionStyles.tsx │ │ │ │ │ ├── DiscussionThread.tsx │ │ │ │ │ ├── MockDiscussionDeliveryProvider.tsx │ │ │ │ │ ├── Portrait.tsx │ │ │ │ │ ├── Post.tsx │ │ │ │ │ ├── SearchResultPost.tsx │ │ │ │ │ ├── SortIcon.tsx │ │ │ │ │ ├── discussion-channel.ts │ │ │ │ │ ├── discussion-hook.tsx │ │ │ │ │ ├── discussion-service.ts │ │ │ │ │ ├── participation-util.tsx │ │ │ │ │ └── post-util.ts │ │ │ │ ├── example_content.json │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── file_upload │ │ │ │ ├── FileSpecConfiguration.tsx │ │ │ │ ├── FileUploadAuthoring.tsx │ │ │ │ ├── FileUploadDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── image_coding │ │ │ │ ├── Evaluator.ts │ │ │ │ ├── ImageCodingAuthoring.tsx │ │ │ │ ├── ImageCodingDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── example_content.json │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ ├── sections │ │ │ │ │ ├── Feedback.tsx │ │ │ │ │ └── ImageCodeEditor.tsx │ │ │ │ └── utils.ts │ │ │ ├── image_hotspot │ │ │ │ ├── ImageHotspotAuthoring.tsx │ │ │ │ ├── ImageHotspotDelivery.tsx │ │ │ │ ├── Sections │ │ │ │ │ ├── CircleEditor.tsx │ │ │ │ │ ├── PolygonAdder.tsx │ │ │ │ │ ├── PolygonEditor.tsx │ │ │ │ │ ├── RectangleEditor.tsx │ │ │ │ │ ├── ShapeEditor.scss │ │ │ │ │ ├── common.ts │ │ │ │ │ └── timing.ts │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ ├── likert │ │ │ │ ├── LikertAuthoring.tsx │ │ │ │ ├── LikertDelivery.tsx │ │ │ │ ├── Sections │ │ │ │ │ └── LikertTable.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── example_content.json │ │ │ │ ├── manifest.json │ │ │ │ ├── reports │ │ │ │ │ └── LikerReportRenderer.tsx │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── logic_lab │ │ │ │ ├── LogicLabAuthoring.tsx │ │ │ │ ├── LogicLabDelivery.tsx │ │ │ │ ├── LogicLabModelSchema.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ └── manifest.json │ │ │ ├── lti_external_tool │ │ │ │ ├── LTIExternalToolAuthoring.tsx │ │ │ │ ├── LTIExternalToolDelivery.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── example_content.json │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── multi_input │ │ │ │ ├── MultiInputAuthoring.tsx │ │ │ │ ├── MultiInputDelivery.tsx │ │ │ │ ├── MultiInputScoringMethod.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ ├── sections │ │ │ │ │ ├── AnswerKeyTab.tsx │ │ │ │ │ ├── DropdownQuestionEditor.tsx │ │ │ │ │ ├── ExplanationTab.tsx │ │ │ │ │ ├── HintsTab.tsx │ │ │ │ │ ├── InputRefToolbar.tsx │ │ │ │ │ ├── MultiInputStem.tsx │ │ │ │ │ └── QuestionTab.tsx │ │ │ │ └── utils.tsx │ │ │ ├── multiple_choice │ │ │ │ ├── MultipleChoiceAuthoring.tsx │ │ │ │ ├── MultipleChoiceDelivery.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── example_content.json │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ ├── studentResponses.json │ │ │ │ ├── transformations │ │ │ │ │ ├── v1.ts │ │ │ │ │ └── v2.ts │ │ │ │ └── utils.ts │ │ │ ├── oli_embedded │ │ │ │ ├── OliEmbeddedAuthoring.tsx │ │ │ │ ├── OliEmbeddedDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── example_content.json │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── utils.ts │ │ │ ├── ordering │ │ │ │ ├── OrderingAuthoring.tsx │ │ │ │ ├── OrderingDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ ├── sections │ │ │ │ │ ├── ResponseChoices.tsx │ │ │ │ │ └── TargetedFeedback.tsx │ │ │ │ ├── transformations │ │ │ │ │ ├── v1.ts │ │ │ │ │ └── v2.ts │ │ │ │ └── utils.ts │ │ │ ├── registrar.ts │ │ │ ├── response_multi │ │ │ │ ├── ResponseMultiInputAuthoring.tsx │ │ │ │ ├── ResponseMultiInputDelivery.tsx │ │ │ │ ├── ResponseMultiInputScoringMethod.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── rules.ts │ │ │ │ ├── schema.ts │ │ │ │ ├── sections │ │ │ │ │ ├── DropdownQuestionEditor.tsx │ │ │ │ │ ├── ExplanationTab.tsx │ │ │ │ │ ├── HintsTab.tsx │ │ │ │ │ ├── InputRefToolbar.tsx │ │ │ │ │ ├── PartsTab.tsx │ │ │ │ │ ├── QuestionTab.tsx │ │ │ │ │ ├── ResponseMultiInputStem.tsx │ │ │ │ │ ├── ResponseTab.tsx │ │ │ │ │ └── RulesTab.tsx │ │ │ │ └── utils.tsx │ │ │ ├── short_answer │ │ │ │ ├── ShortAnswerAuthoring.tsx │ │ │ │ ├── ShortAnswerDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ ├── sections │ │ │ │ │ ├── InputEntry.tsx │ │ │ │ │ ├── MathInput.tsx │ │ │ │ │ ├── NumericInput.tsx │ │ │ │ │ └── TextInput.tsx │ │ │ │ └── utils.ts │ │ │ ├── types.ts │ │ │ ├── useDeliveryErrorHandlers.ts │ │ │ └── vlab │ │ │ │ ├── VlabAuthoring.tsx │ │ │ │ ├── VlabDelivery.tsx │ │ │ │ ├── actions.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.tsx │ │ │ │ ├── sections │ │ │ │ ├── QuestionTab.tsx │ │ │ │ ├── VlabConfigTab.tsx │ │ │ │ ├── VlabParameterSelector.tsx │ │ │ │ └── VlabStem.tsx │ │ │ │ └── utils.tsx │ │ ├── activity │ │ │ ├── DuplicateActivity.tsx │ │ │ ├── InlineActivityEditor.modules.scss │ │ │ └── InlineActivityEditor.tsx │ │ ├── common │ │ │ ├── Buttons.tsx │ │ │ ├── Collapse.tsx │ │ │ ├── CommandButton.tsx │ │ │ ├── Conjugation.tsx │ │ │ ├── Definition.tsx │ │ │ ├── DeliveryElementRenderer.tsx │ │ │ ├── DescriptionList.tsx │ │ │ ├── DraggableColumn.modules.scss │ │ │ ├── DraggableColumn.tsx │ │ │ ├── ECLRepl.tsx │ │ │ ├── ErrorBoundary.tsx │ │ │ ├── Figure.tsx │ │ │ ├── Formula.tsx │ │ │ ├── Inputs.tsx │ │ │ ├── LoadingSpinner.modules.scss │ │ │ ├── LoadingSpinner.tsx │ │ │ ├── MathJaxFormula.tsx │ │ │ ├── MathLive.modules.scss │ │ │ ├── MathLive.tsx │ │ │ ├── Navbar.tsx │ │ │ ├── Pronunciation.tsx │ │ │ ├── SelectTimezone.tsx │ │ │ ├── Selection.tsx │ │ │ ├── TableConjugation.tsx │ │ │ ├── TechSupportButton.tsx │ │ │ ├── TextInput.tsx │ │ │ ├── ThreeStateToggle.tsx │ │ │ ├── TimeAgo.tsx │ │ │ ├── TimeRemaining.tsx │ │ │ ├── Tooltip.tsx │ │ │ └── UserAccountMenu.tsx │ │ ├── content │ │ │ ├── PersistenceStatus.tsx │ │ │ ├── Popup.tsx │ │ │ ├── Purpose.tsx │ │ │ ├── RichTextEditor.tsx │ │ │ ├── SlateFixer.ts │ │ │ ├── StructuredContentEditor.tsx │ │ │ ├── TitleBar.tsx │ │ │ ├── UndoRedo.tsx │ │ │ └── add_resource_content │ │ │ │ ├── AddActivity.tsx │ │ │ │ ├── AddContent.tsx │ │ │ │ ├── AddOther.tsx │ │ │ │ ├── AddResourceContent.modules.scss │ │ │ │ ├── AddResourceContent.tsx │ │ │ │ ├── NonActivities.tsx │ │ │ │ └── ResourceChoice.tsx │ │ ├── cookies │ │ │ ├── CookieConsent.tsx │ │ │ ├── CookiePreferences.tsx │ │ │ └── utils.ts │ │ ├── delivery │ │ │ ├── AlternativesPreferenceSelector.tsx │ │ │ ├── CourseContentOutline.tsx │ │ │ └── SurveyControls.tsx │ │ ├── editing │ │ │ ├── SlateOrMarkdownEditor.tsx │ │ │ ├── editor │ │ │ │ ├── Editor.tsx │ │ │ │ ├── SwitchToMarkdownModal.tsx │ │ │ │ ├── handlers │ │ │ │ │ ├── deleteblock.ts │ │ │ │ │ ├── deleteempty.ts │ │ │ │ │ ├── hotkey.ts │ │ │ │ │ ├── lists.ts │ │ │ │ │ ├── quote.ts │ │ │ │ │ ├── title.ts │ │ │ │ │ └── void.ts │ │ │ │ ├── modelEditorDispatch.tsx │ │ │ │ ├── normalizers │ │ │ │ │ ├── block.ts │ │ │ │ │ ├── deleteempty.ts │ │ │ │ │ ├── forceRootNode.ts │ │ │ │ │ ├── lists.ts │ │ │ │ │ ├── normalizer.ts │ │ │ │ │ ├── root.ts │ │ │ │ │ ├── spaces.ts │ │ │ │ │ └── tables.ts │ │ │ │ ├── overrides │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── inlines.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── tables.ts │ │ │ │ │ └── voids.ts │ │ │ │ └── paste │ │ │ │ │ ├── deserializerActions.ts │ │ │ │ │ ├── deserializerRules.ts │ │ │ │ │ ├── onHtmlPaste.ts │ │ │ │ │ ├── onPaste.ts │ │ │ │ │ └── onYouTubePaste.ts │ │ │ ├── elements │ │ │ │ ├── PronunciationEditor.tsx │ │ │ │ ├── README.md │ │ │ │ ├── audio │ │ │ │ │ ├── AudioElement.tsx │ │ │ │ │ ├── AudioSettings.tsx │ │ │ │ │ └── audioActions.tsx │ │ │ │ ├── blockcode │ │ │ │ │ ├── BlockcodeElement.scss │ │ │ │ │ ├── BlockcodeElement.tsx │ │ │ │ │ ├── BlockcodeSettings.tsx │ │ │ │ │ ├── codeLanguages.ts │ │ │ │ │ └── codeblockActions.tsx │ │ │ │ ├── blockquote │ │ │ │ │ ├── BlockquoteElement.tsx │ │ │ │ │ └── blockquoteActions.tsx │ │ │ │ ├── callout │ │ │ │ │ ├── CalloutElement.tsx │ │ │ │ │ └── calloutActions.tsx │ │ │ │ ├── cite │ │ │ │ │ ├── CitationEditor.tsx │ │ │ │ │ ├── CiteCmd.tsx │ │ │ │ │ ├── CiteElement.scss │ │ │ │ │ └── CiteElement.tsx │ │ │ │ ├── command_button │ │ │ │ │ ├── CommandButtonEditor.tsx │ │ │ │ │ ├── CommandButtonSettingsModal.tsx │ │ │ │ │ ├── CommandMessageEditor.tsx │ │ │ │ │ ├── DefaultCommandMessageEditor.tsx │ │ │ │ │ ├── commandButtonActions.tsx │ │ │ │ │ ├── commandButtonClicked.ts │ │ │ │ │ ├── commandButtonTypes.ts │ │ │ │ │ ├── useCommandInventory.ts │ │ │ │ │ ├── useCommandTarget.ts │ │ │ │ │ └── useCommandTargetable.ts │ │ │ │ ├── commands │ │ │ │ │ ├── commandFactories.ts │ │ │ │ │ ├── interfaces.ts │ │ │ │ │ └── toggleTextTypes.ts │ │ │ │ ├── common │ │ │ │ │ ├── AudioClipPicker.tsx │ │ │ │ │ ├── InlineAudioClipPicker.tsx │ │ │ │ │ ├── MediaPickerPanel.tsx │ │ │ │ │ ├── Placeholder.tsx │ │ │ │ │ ├── SlideOutPanel.tsx │ │ │ │ │ └── settings │ │ │ │ │ │ ├── AudioClipPickerSettings.tsx │ │ │ │ │ │ ├── CaptionEditor.tsx │ │ │ │ │ │ ├── InlineEditor.tsx │ │ │ │ │ │ ├── Settings.scss │ │ │ │ │ │ └── Settings.tsx │ │ │ │ ├── conjugation │ │ │ │ │ ├── ConjugationEditor.tsx │ │ │ │ │ ├── ConjugationInlineEditor.tsx │ │ │ │ │ ├── ConjugationToolbar.tsx │ │ │ │ │ └── conjugationActions.tsx │ │ │ │ ├── definition │ │ │ │ │ ├── DefinitionEditor.tsx │ │ │ │ │ ├── DefinitionInlineEditor.tsx │ │ │ │ │ ├── DefinitionToolbar.tsx │ │ │ │ │ └── definitionActions.tsx │ │ │ │ ├── description │ │ │ │ │ ├── DescriptionListEditor.tsx │ │ │ │ │ └── description-list-actions.tsx │ │ │ │ ├── dialog │ │ │ │ │ ├── CursorInput.tsx │ │ │ │ │ ├── DialogEditor.tsx │ │ │ │ │ ├── DialogInlineEditor.tsx │ │ │ │ │ ├── DialogToolbar.tsx │ │ │ │ │ └── dialogActions.tsx │ │ │ │ ├── ecl │ │ │ │ │ ├── ECLReplEditor.tsx │ │ │ │ │ └── actions.tsx │ │ │ │ ├── figure │ │ │ │ │ ├── FigureEditor.tsx │ │ │ │ │ └── figureActions.tsx │ │ │ │ ├── foreign │ │ │ │ │ ├── ForeignEditor.tsx │ │ │ │ │ ├── ForeignModal.tsx │ │ │ │ │ └── foreignActions.tsx │ │ │ │ ├── formula │ │ │ │ │ ├── FormulaEditor.tsx │ │ │ │ │ ├── FormulaModal.tsx │ │ │ │ │ ├── FormulaToolbar.tsx │ │ │ │ │ └── formulaActions.tsx │ │ │ │ ├── heading │ │ │ │ │ └── headingActions.tsx │ │ │ │ ├── image │ │ │ │ │ ├── ImageModal.tsx │ │ │ │ │ ├── ImageSettings.tsx │ │ │ │ │ ├── block │ │ │ │ │ │ ├── ImageElement.tsx │ │ │ │ │ │ └── ImagePlaceholder.tsx │ │ │ │ │ ├── imageActions.tsx │ │ │ │ │ └── inline │ │ │ │ │ │ └── ImageInlineElement.tsx │ │ │ │ ├── inputref │ │ │ │ │ ├── InputRefEditor.tsx │ │ │ │ │ └── actions.tsx │ │ │ │ ├── interfaces.ts │ │ │ │ ├── link │ │ │ │ │ ├── LinkCmd.tsx │ │ │ │ │ ├── LinkElement.scss │ │ │ │ │ ├── LinkElement.tsx │ │ │ │ │ └── LinkModal.tsx │ │ │ │ ├── list │ │ │ │ │ └── listActions.tsx │ │ │ │ ├── marks │ │ │ │ │ └── toggleMarkActions.tsx │ │ │ │ ├── page_link │ │ │ │ │ ├── PageLink.modules.scss │ │ │ │ │ ├── PageLinkEditor.tsx │ │ │ │ │ └── pageLinkActions.tsx │ │ │ │ ├── paragraph │ │ │ │ │ └── paragraphActions.tsx │ │ │ │ ├── popup │ │ │ │ │ ├── PopupCmd.tsx │ │ │ │ │ ├── PopupContentEditor.tsx │ │ │ │ │ └── PopupElement.tsx │ │ │ │ ├── table │ │ │ │ │ ├── TableDropdownMenu.tsx │ │ │ │ │ ├── TableElement.tsx │ │ │ │ │ ├── TableSettings.tsx │ │ │ │ │ ├── TcElement.tsx │ │ │ │ │ ├── TdElement.tsx │ │ │ │ │ ├── ThElement.tsx │ │ │ │ │ ├── TrElement.tsx │ │ │ │ │ ├── commands │ │ │ │ │ │ ├── SizePicker.tsx │ │ │ │ │ │ └── insertTable.tsx │ │ │ │ │ ├── table-cell-merge-operations.ts │ │ │ │ │ └── table-util.ts │ │ │ │ ├── trigger │ │ │ │ │ └── TriggerEditor.tsx │ │ │ │ ├── utils.tsx │ │ │ │ ├── video │ │ │ │ │ ├── VideoCommandEditor.tsx │ │ │ │ │ ├── VideoEditor.tsx │ │ │ │ │ ├── VideoModal.tsx │ │ │ │ │ ├── VideoPlaceholder.tsx │ │ │ │ │ ├── VideoSettings.tsx │ │ │ │ │ └── videoActions.tsx │ │ │ │ ├── webpage │ │ │ │ │ ├── WebpageElement.tsx │ │ │ │ │ ├── WebpageModal.tsx │ │ │ │ │ ├── WebpageSettings.tsx │ │ │ │ │ └── webpageActions.tsx │ │ │ │ └── youtube │ │ │ │ │ ├── YoutubeElement.tsx │ │ │ │ │ ├── YoutubeModal.tsx │ │ │ │ │ └── youtubeActions.tsx │ │ │ ├── markdown_editor │ │ │ │ ├── MarkdownEditor.tsx │ │ │ │ ├── SwitchToSlateModal.tsx │ │ │ │ ├── content_markdown_deserializer.ts │ │ │ │ ├── content_markdown_serializer.ts │ │ │ │ └── markdown_util.ts │ │ │ ├── slateUtils.tsx │ │ │ └── toolbar │ │ │ │ ├── CategorizedCommandList.tsx │ │ │ │ ├── HoverContainer.tsx │ │ │ │ ├── Toolbar.modules.scss │ │ │ │ ├── Toolbar.tsx │ │ │ │ ├── buttons │ │ │ │ ├── ButtonContent.tsx │ │ │ │ ├── CommandButton.tsx │ │ │ │ ├── DescriptiveButton.tsx │ │ │ │ └── DropdownButton.tsx │ │ │ │ ├── common.tsx │ │ │ │ ├── editorToolbar │ │ │ │ ├── EditorSettingsMenu.tsx │ │ │ │ ├── EditorToolbar.tsx │ │ │ │ ├── Inlines.tsx │ │ │ │ ├── ListStyleToggle.tsx │ │ │ │ ├── UndoRedoToolbar.tsx │ │ │ │ └── blocks │ │ │ │ │ ├── BlockInsertMenu.tsx │ │ │ │ │ ├── BlockSettings.tsx │ │ │ │ │ ├── BlockToggle.tsx │ │ │ │ │ └── blockInsertOptions.ts │ │ │ │ ├── hooks │ │ │ │ └── useToolbar.tsx │ │ │ │ ├── items.tsx │ │ │ │ └── toolbarUtils.ts │ │ ├── hooks │ │ │ ├── global.ts │ │ │ ├── useAlternatives.tsx │ │ │ ├── useAudio.tsx │ │ │ ├── useBoundingRect.tsx │ │ │ ├── useClickOutside.ts │ │ │ ├── useDocumentMouseEvents.ts │ │ │ ├── useEventListener.ts │ │ │ ├── useHover.ts │ │ │ ├── useLoader.tsx │ │ │ ├── useOffline.tsx │ │ │ ├── usePrevious.ts │ │ │ ├── useScrollPosition.ts │ │ │ ├── useStateWithPromise.ts │ │ │ ├── useToggle.ts │ │ │ └── useWindowSize.ts │ │ ├── logic │ │ │ ├── ActivityTypeSelection.tsx │ │ │ ├── Clause.tsx │ │ │ ├── Expression.modules.scss │ │ │ ├── Expression.tsx │ │ │ ├── LogicBuilder.tsx │ │ │ └── common.ts │ │ ├── lti │ │ │ └── LTIExternalToolFrame.tsx │ │ ├── media │ │ │ ├── ModalMediaEditor.tsx │ │ │ ├── OrderedMediaLibrary.ts │ │ │ ├── UrlOrUpload.tsx │ │ │ └── manager │ │ │ │ ├── AudioIcon.tsx │ │ │ │ ├── FileIcon.tsx │ │ │ │ ├── ImageIcon.scss │ │ │ │ ├── ImageIcon.tsx │ │ │ │ ├── MediaIcon.tsx │ │ │ │ ├── MediaManager.controller.ts │ │ │ │ ├── MediaManager.scss │ │ │ │ ├── MediaManager.tsx │ │ │ │ ├── MovieIcon.tsx │ │ │ │ ├── VideoUploadWarning.tsx │ │ │ │ ├── delete.ts │ │ │ │ ├── mime-types.json │ │ │ │ ├── upload.ts │ │ │ │ └── utils.tsx │ │ ├── messages │ │ │ ├── Banner.modules.scss │ │ │ ├── Banner.tsx │ │ │ ├── CreateAccountPopup.modules.scss │ │ │ ├── CreateAccountPopup.tsx │ │ │ └── Message.tsx │ │ ├── misc │ │ │ ├── AIIcon.tsx │ │ │ ├── Alert.tsx │ │ │ ├── AttemptSelector.tsx │ │ │ ├── BackdropModal.tsx │ │ │ ├── Button.tsx │ │ │ ├── Card.tsx │ │ │ ├── CloseButton.tsx │ │ │ ├── DarkModeSelector.tsx │ │ │ ├── DeleteButton.modules.scss │ │ │ ├── DeleteButton.tsx │ │ │ ├── Description.tsx │ │ │ ├── DotDistributionChart.tsx │ │ │ ├── EditLink.tsx │ │ │ ├── ErrorBanner.tsx │ │ │ ├── Heading.tsx │ │ │ ├── Icon.tsx │ │ │ ├── InfoTip.tsx │ │ │ ├── MultiStepModal.tsx │ │ │ ├── PaginationControls.modules.scss │ │ │ ├── PaginationControls.tsx │ │ │ ├── Paging.tsx │ │ │ ├── PromptModal.tsx │ │ │ ├── VegaLiteRenderer.tsx │ │ │ ├── icons │ │ │ │ ├── Checkmark.tsx │ │ │ │ ├── Cross.tsx │ │ │ │ ├── Icons.tsx │ │ │ │ ├── checkbox │ │ │ │ │ └── Checkbox.tsx │ │ │ │ └── radio │ │ │ │ │ └── Radio.tsx │ │ │ └── resizable │ │ │ │ ├── Resizable.tsx │ │ │ │ ├── types.ts │ │ │ │ ├── useDOMPosition.tsx │ │ │ │ ├── useMousePosition.tsx │ │ │ │ ├── useMousedown.tsx │ │ │ │ └── utils.ts │ │ ├── modal │ │ │ ├── Modal.tsx │ │ │ ├── ModalDisplay.tsx │ │ │ ├── SelectModal.tsx │ │ │ └── utils.ts │ │ ├── monaco_lenses │ │ │ ├── activity_links_lens.ts │ │ │ └── index.ts │ │ ├── parts │ │ │ ├── customElementWrapper.ts │ │ │ ├── janus-Carousel │ │ │ │ ├── Carousel.css │ │ │ │ ├── Carousel.tsx │ │ │ │ ├── CarouselAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── types.ts │ │ │ ├── janus-audio │ │ │ │ ├── Audio.tsx │ │ │ │ ├── AudioAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-capi-iframe │ │ │ │ ├── CapiIframeAuthor.tsx │ │ │ │ ├── CapiVariablePicker.scss │ │ │ │ ├── CapiVariablePicker.tsx │ │ │ │ ├── ExternalActivity.tsx │ │ │ │ ├── JanusCAPIRequestTypes.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-dropdown │ │ │ │ ├── Dropdown.tsx │ │ │ │ ├── DropdownAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-fill-blanks │ │ │ │ ├── FIBAuthor.tsx │ │ │ │ ├── FIBUtils.ts │ │ │ │ ├── FillBlanks.scss │ │ │ │ ├── FillBlanks.tsx │ │ │ │ ├── Quill.scss │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-formula │ │ │ │ ├── Formula.tsx │ │ │ │ ├── FormulaAuthor.tsx │ │ │ │ ├── FormulaEditor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-hub-spoke │ │ │ │ ├── HubSpoke.scss │ │ │ │ ├── HubSpoke.tsx │ │ │ │ ├── HubSpokeAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-image │ │ │ │ ├── Image.tsx │ │ │ │ ├── ImageAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-input-number │ │ │ │ ├── InputNumber.scss │ │ │ │ ├── InputNumber.tsx │ │ │ │ ├── InputNumberAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-input-text │ │ │ │ ├── InputText.tsx │ │ │ │ ├── InputTextAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-mcq │ │ │ │ ├── McqAuthor.tsx │ │ │ │ ├── MultipleChoiceQuestion.tsx │ │ │ │ ├── MultipleChoiceQuestionType.ts │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── mcq-util.ts │ │ │ │ └── schema.ts │ │ │ ├── janus-multi-line-text │ │ │ │ ├── MultiLineTextInput.tsx │ │ │ │ ├── MultiLineTextInputAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-navigation-button │ │ │ │ ├── NavButtonAuthor.tsx │ │ │ │ ├── NavigationButton.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-popup │ │ │ │ ├── GetIcon.tsx │ │ │ │ ├── Popup.tsx │ │ │ │ ├── PopupAuthor.tsx │ │ │ │ ├── PopupWindow.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── schema.ts │ │ │ │ └── types.ts │ │ │ ├── janus-slider │ │ │ │ ├── Slider.scss │ │ │ │ ├── Slider.tsx │ │ │ │ ├── SliderAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-text-flow │ │ │ │ ├── Markup.tsx │ │ │ │ ├── QuillEditor.tsx │ │ │ │ ├── QuillFIBOptionEditor.tsx │ │ │ │ ├── QuillImageUploader.tsx │ │ │ │ ├── TextFlow.tsx │ │ │ │ ├── TextFlowAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ ├── quill-utils.ts │ │ │ │ └── schema.ts │ │ │ ├── janus-text-slider │ │ │ │ ├── Slider-Text.scss │ │ │ │ ├── SliderText.tsx │ │ │ │ ├── SliderTextAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── janus-video │ │ │ │ ├── Video.tsx │ │ │ │ ├── VideoAuthor.tsx │ │ │ │ ├── authoring-entry.ts │ │ │ │ ├── delivery-entry.ts │ │ │ │ ├── manifest.json │ │ │ │ └── schema.ts │ │ │ ├── parts-schemas.ts │ │ │ ├── partsApi.ts │ │ │ └── types │ │ │ │ ├── css-modules.d.ts │ │ │ │ ├── parts.ts │ │ │ │ └── types.d.ts │ │ ├── resource │ │ │ ├── DragHandle.tsx │ │ │ ├── Tags.scss │ │ │ ├── Tags.tsx │ │ │ ├── TestModeHandler.tsx │ │ │ ├── UnsupportedActivity.tsx │ │ │ ├── editors │ │ │ │ ├── ActivityBankSelectionEditor.scss │ │ │ │ ├── ActivityBankSelectionEditor.tsx │ │ │ │ ├── ActivityBlock.tsx │ │ │ │ ├── ActivityEditor.tsx │ │ │ │ ├── AddResource.tsx │ │ │ │ ├── AlternativesEditor.modules.scss │ │ │ │ ├── AlternativesEditor.tsx │ │ │ │ ├── AudienceModes.tsx │ │ │ │ ├── ContentBlock.modules.scss │ │ │ │ ├── ContentBlock.tsx │ │ │ │ ├── ContentBreak.modules.scss │ │ │ │ ├── ContentBreak.tsx │ │ │ │ ├── ContentEditor.tsx │ │ │ │ ├── ContentOutline.modules.scss │ │ │ │ ├── ContentOutline.tsx │ │ │ │ ├── Editors.scss │ │ │ │ ├── Editors.tsx │ │ │ │ ├── GroupEditor.tsx │ │ │ │ ├── ObjectivesList.scss │ │ │ │ ├── ObjectivesList.tsx │ │ │ │ ├── OutlineItem.tsx │ │ │ │ ├── PaginationModes.tsx │ │ │ │ ├── PurposeGroupEditor.tsx │ │ │ │ ├── ReportBlock.tsx │ │ │ │ ├── ReportEditor.tsx │ │ │ │ ├── SelectionEditor.tsx │ │ │ │ ├── SurveyBlock.tsx │ │ │ │ ├── SurveyEditor.tsx │ │ │ │ ├── createEditor.tsx │ │ │ │ ├── dragndrop │ │ │ │ │ ├── DropTarget.modules.scss │ │ │ │ │ ├── DropTarget.tsx │ │ │ │ │ ├── handlers │ │ │ │ │ │ ├── dragEnd.ts │ │ │ │ │ │ ├── dragStart.ts │ │ │ │ │ │ ├── drop.ts │ │ │ │ │ │ ├── focus.ts │ │ │ │ │ │ └── move.ts │ │ │ │ │ ├── interfaces.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── editor_error_boundary.tsx │ │ │ │ └── useBlueprints.tsx │ │ │ ├── objectives │ │ │ │ ├── ActivityLOs.tsx │ │ │ │ ├── Objectives.tsx │ │ │ │ ├── ObjectivesSelection.modules.scss │ │ │ │ ├── ObjectivesSelection.tsx │ │ │ │ └── sort.ts │ │ │ ├── undo.ts │ │ │ └── undo │ │ │ │ ├── UndoToasts.modules.scss │ │ │ │ └── UndoToasts.tsx │ │ ├── tabbed_navigation │ │ │ └── Tabs.tsx │ │ ├── video_player │ │ │ ├── ClosedCaptionButton.tsx │ │ │ ├── ControlBar.tsx │ │ │ ├── InitialPlayButton.tsx │ │ │ ├── VideoFullScreenButton.tsx │ │ │ ├── VideoMuteButton.tsx │ │ │ ├── VideoPlayButton.tsx │ │ │ ├── VideoPlayer.tsx │ │ │ └── video-react.d.ts │ │ └── youtube_player │ │ │ └── YoutubePlayer.tsx │ ├── data │ │ ├── activities │ │ │ ├── DeliveryState.ts │ │ │ ├── model │ │ │ │ ├── choices.ts │ │ │ │ ├── explanation.ts │ │ │ │ ├── hints.ts │ │ │ │ ├── list.ts │ │ │ │ ├── responses.ts │ │ │ │ ├── rules.ts │ │ │ │ └── utils.ts │ │ │ └── utils.ts │ │ ├── content │ │ │ ├── activity.ts │ │ │ ├── bank.ts │ │ │ ├── bibentry.ts │ │ │ ├── editors.ts │ │ │ ├── model │ │ │ │ ├── elements │ │ │ │ │ ├── factories.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── index.ts │ │ │ │ ├── other.ts │ │ │ │ ├── schema.ts │ │ │ │ ├── slate.ts │ │ │ │ └── text.ts │ │ │ ├── objective.ts │ │ │ ├── resource.ts │ │ │ ├── tags.ts │ │ │ ├── utils.tsx │ │ │ └── writers │ │ │ │ ├── context.ts │ │ │ │ ├── html.tsx │ │ │ │ ├── renderer.tsx │ │ │ │ └── writer.tsx │ │ ├── editor │ │ │ └── PageEditorContent.ts │ │ ├── events.ts │ │ ├── messages │ │ │ └── messages.ts │ │ ├── persistence │ │ │ ├── AbstractPersistenceStrategy.ts │ │ │ ├── DeferredPersistenceStrategy.ts │ │ │ ├── PersistenceStrategy.ts │ │ │ ├── activity.ts │ │ │ ├── alternatives.ts │ │ │ ├── bank.ts │ │ │ ├── bibentry.ts │ │ │ ├── blob.ts │ │ │ ├── common.ts │ │ │ ├── config.ts │ │ │ ├── deferredSavePart.ts │ │ │ ├── extrinsic.ts │ │ │ ├── lock.ts │ │ │ ├── lti_platform.ts │ │ │ ├── media.ts │ │ │ ├── objective.ts │ │ │ ├── page_lifecycle.ts │ │ │ ├── pagination.ts │ │ │ ├── preferences.ts │ │ │ ├── resource.ts │ │ │ ├── state │ │ │ │ └── intrinsic.ts │ │ │ ├── tags.ts │ │ │ ├── trigger.ts │ │ │ ├── variables.ts │ │ │ └── xapi.ts │ │ ├── triggers.ts │ │ └── types.ts │ ├── hooks │ │ ├── auto_select.ts │ │ ├── before_unload.ts │ │ ├── checkbox_listener.ts │ │ ├── click_outside.ts │ │ ├── click_variations.ts │ │ ├── conditional_toggle.js │ │ ├── copy_listener.ts │ │ ├── copy_to_clipboard.ts │ │ ├── countdown.ts │ │ ├── countdown_timer.ts │ │ ├── custom_focus_wrap.ts │ │ ├── datetimelocal_input_listener.ts │ │ ├── debounced_text_input_listener.ts │ │ ├── delayed_submit.ts │ │ ├── disable_submitted.ts │ │ ├── dragdrop.ts │ │ ├── email_list.ts │ │ ├── end_date_timer.ts │ │ ├── evaluate_mathjax_expressions.ts │ │ ├── expand_containers.ts │ │ ├── fixed_navigation_bar.ts │ │ ├── global_tooltip.ts │ │ ├── graph.ts │ │ ├── hierarchy_selector.ts │ │ ├── highlight_code.ts │ │ ├── index.ts │ │ ├── input_auto_select.ts │ │ ├── keep_scroll_at_bottom.ts │ │ ├── live_modal.ts │ │ ├── load_survey_scripts.ts │ │ ├── lti_connect_instructions.ts │ │ ├── media_query.ts │ │ ├── modal.ts │ │ ├── monaco_editor.tsx │ │ ├── on_mount_and_update.ts │ │ ├── page_content_hooks.ts │ │ ├── page_trigger.ts │ │ ├── point_markers.ts │ │ ├── projects_typeahead.ts │ │ ├── react_to_liveview.ts │ │ ├── recaptcha.ts │ │ ├── resize_listener.ts │ │ ├── review_activity.ts │ │ ├── scroller.ts │ │ ├── select_listener.ts │ │ ├── show_teaser.ts │ │ ├── slider_scroll.ts │ │ ├── sticky_tech_support_button.ts │ │ ├── submit_form.ts │ │ ├── submit_tech_support_form.ts │ │ ├── sync_chevron_state.ts │ │ ├── system_message.ts │ │ ├── tags_component.ts │ │ ├── text_input_listener.ts │ │ ├── textarea_listener.ts │ │ ├── theme_toggle.tsx │ │ ├── toggle_read_more.ts │ │ ├── tooltip.ts │ │ ├── useKeyDown.tsx │ │ ├── use_pointer_capability.ts │ │ ├── video_player.ts │ │ ├── video_preview.ts │ │ └── wakeup_dot.ts │ ├── payment │ │ ├── cashnet │ │ │ └── client.ts │ │ └── stripe │ │ │ └── client.ts │ ├── phoenix │ │ ├── activity_bridge.ts │ │ ├── app.ts │ │ ├── dark.ts │ │ ├── finalize.ts │ │ ├── modal.ts │ │ ├── package_delete.ts │ │ ├── phoenix.d.ts │ │ ├── phoenix_live_view.d.ts │ │ ├── ready.ts │ │ ├── socket.ts │ │ └── timezone.ts │ ├── state │ │ ├── index.ts │ │ ├── media.ts │ │ ├── modal.ts │ │ ├── other.ts │ │ ├── preferences.ts │ │ └── store.ts │ ├── stories │ │ ├── --Intro.stories.mdx │ │ ├── Alert.stories.mdx │ │ ├── Buttons.stories.mdx │ │ ├── Card.stories.mdx │ │ ├── ErrorBanner.stories.mdx │ │ ├── Icons.stories.mdx │ │ ├── Paging.stories.mdx │ │ ├── PromptModal.stories.mdx │ │ ├── Tooltips.stories.mdx │ │ ├── TorusBG.tsx │ │ ├── Typography.stories.mdx │ │ ├── advanced-authoring │ │ │ ├── AddScreenModal.stories.mdx │ │ │ ├── AdvancedAuthorStorybookContext.tsx │ │ │ ├── FlowchartComponents.stories.mdx │ │ │ ├── FlowchartIcons.stories.mdx │ │ │ ├── OnboardWizard.stories.tsx │ │ │ ├── PropertyPanels.stories.tsx │ │ │ └── sequence-samples.ts │ │ └── assets │ │ │ ├── code-brackets.svg │ │ │ ├── colors.svg │ │ │ ├── comments.svg │ │ │ ├── direction.svg │ │ │ ├── flow.svg │ │ │ ├── plugin.svg │ │ │ ├── repo.svg │ │ │ └── stackalt.svg │ ├── types │ │ ├── applicationContext.ts │ │ ├── media.ts │ │ └── nullish.ts │ └── utils │ │ ├── appsignal.ts │ │ ├── browser.ts │ │ ├── classNames.ts │ │ ├── colors.ts │ │ ├── common.ts │ │ ├── date.ts │ │ ├── decode.ts │ │ ├── format.ts │ │ ├── guid.ts │ │ ├── i18n.ts │ │ ├── lang.ts │ │ ├── language-codes-iso639.ts │ │ ├── mathmlSanitizer.ts │ │ ├── measure.ts │ │ ├── number.ts │ │ ├── params.ts │ │ ├── pathOperations.ts │ │ ├── surface.ts │ │ ├── test_utils.ts │ │ ├── useDefaultTextDirection.ts │ │ ├── useStateFromLocalStorage.ts │ │ └── xmlPretty.ts ├── static │ ├── branding │ │ ├── dev │ │ │ ├── favicons │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ ├── apple-touch-icon.png │ │ │ │ ├── favicon-16x16.png │ │ │ │ ├── favicon-32x32.png │ │ │ │ ├── favicon.ico │ │ │ │ └── site.webmanifest │ │ │ ├── oli_torus_icon.png │ │ │ ├── oli_torus_logo.png │ │ │ └── oli_torus_logo_dark.png │ │ └── prod │ │ │ ├── favicons │ │ │ ├── android-chrome-192x192.png │ │ │ ├── android-chrome-512x512.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon.ico │ │ │ └── site.webmanifest │ │ │ ├── oli_torus_icon.png │ │ │ ├── oli_torus_logo.png │ │ │ └── oli_torus_logo_dark.png │ ├── custom │ │ └── README.md │ ├── ebsco │ │ └── login.html │ ├── favicon.ico │ ├── images │ │ ├── assistant │ │ │ ├── dot_ai_icon.png │ │ │ └── footer_dot_ai.png │ │ ├── cc_logos │ │ │ ├── by-nc-nd.svg │ │ │ ├── by-nc-sa.svg │ │ │ ├── by-nc.svg │ │ │ ├── by-nd.svg │ │ │ ├── by-sa.svg │ │ │ └── by.svg │ │ ├── course_content │ │ │ └── page_icon.png │ │ ├── course_default.png │ │ ├── email │ │ │ ├── block-tools-600x600.jpg │ │ │ └── simon-painting-1-825x231.jpg │ │ ├── enrollment_info.png │ │ ├── exploration.gif │ │ ├── explorations │ │ │ └── default_poster.jpg │ │ ├── gradients │ │ │ ├── assignments-bg.png │ │ │ ├── colorful-light-opacity-25.png │ │ │ ├── discussions-bg-dark.png │ │ │ ├── discussions-bg.png │ │ │ ├── explorations-bg-dark.png │ │ │ ├── explorations-bg.png │ │ │ ├── home-bg.png │ │ │ ├── index-bg-dark.png │ │ │ ├── index-bg.png │ │ │ ├── practice-bg-dark.png │ │ │ ├── practice-bg.png │ │ │ ├── schedule-bg-dark.png │ │ │ └── schedule-bg.png │ │ ├── icons │ │ │ ├── course-creation-wizard-step-1.svg │ │ │ ├── course-creation-wizard-step-2.svg │ │ │ ├── google-icon.svg │ │ │ ├── icon-AI.svg │ │ │ ├── icon-admin-light.svg │ │ │ ├── icon-componentList.svg │ │ │ ├── icon-copy.svg │ │ │ ├── icon-create-light.svg │ │ │ ├── icon-ddArrow.svg │ │ │ ├── icon-findComponents.svg │ │ │ ├── icon-improve-light.svg │ │ │ ├── icon-nine-dots.svg │ │ │ ├── icon-part-audio.svg │ │ │ ├── icon-part-capi.svg │ │ │ ├── icon-part-carousel.svg │ │ │ ├── icon-part-dropdown.svg │ │ │ ├── icon-part-fib.svg │ │ │ ├── icon-part-formula.svg │ │ │ ├── icon-part-hub-spoke.svg │ │ │ ├── icon-part-image.svg │ │ │ ├── icon-part-longText.svg │ │ │ ├── icon-part-mcq.svg │ │ │ ├── icon-part-navButton.svg │ │ │ ├── icon-part-numberInput.svg │ │ │ ├── icon-part-popup.svg │ │ │ ├── icon-part-slider.svg │ │ │ ├── icon-part-text.svg │ │ │ ├── icon-part-textInput.svg │ │ │ ├── icon-part-video.svg │ │ │ ├── icon-paste.svg │ │ │ ├── icon-preview.svg │ │ │ ├── icon-projects-light.svg │ │ │ ├── icon-publish-light.svg │ │ │ ├── icon-publish.svg │ │ │ ├── icon-redo.svg │ │ │ ├── icon-undo.svg │ │ │ └── life-ring-regular.svg │ │ ├── objectives │ │ │ └── breakdown_objective.svg │ │ ├── oli_torus_logo.png │ │ ├── oli_torus_logo_dark.png │ │ ├── placeholder-image.svg │ │ ├── practice │ │ │ └── default_poster.jpg │ │ └── vlab.png │ ├── robots.txt │ └── vlab │ │ ├── 526-2ab1d3475c35ab8befd6.js │ │ ├── 526-2ab1d3475c35ab8befd6.js.map │ │ ├── 739-d2012c7aaa5f994b630e.js │ │ ├── 739-d2012c7aaa5f994b630e.js.map │ │ ├── 755-11c3fd056b5886c797a7.js │ │ ├── 755-11c3fd056b5886c797a7.js.map │ │ ├── 850-3137d0eefbbd05a57734.js │ │ ├── 850-3137d0eefbbd05a57734.js.map │ │ ├── 896-b74b634d43b84b4eeadd.js │ │ ├── 896-b74b634d43b84b4eeadd.js.map │ │ ├── 896.css │ │ ├── 896.css.map │ │ ├── bundle-2af66f297f5c1ba32d15.js │ │ ├── bundle-2af66f297f5c1ba32d15.js.map │ │ ├── images │ │ └── logo.gif │ │ ├── lib-3f0127fb962df241e57c.js │ │ ├── lib-3f0127fb962df241e57c.js.map │ │ ├── scripts │ │ └── resources │ │ │ ├── assignments │ │ │ ├── en │ │ │ │ ├── MolarityDensity │ │ │ │ │ ├── dilution │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ └── sucrose │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ ├── Redox │ │ │ │ │ ├── redox │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ └── redox2 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ ├── chem207 │ │ │ │ │ └── exp01 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ ├── chemvlab │ │ │ │ │ ├── IV │ │ │ │ │ │ ├── IV_dilute_saline │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── IV_iodine_12 │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── IV_iodine_18 │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── IV_make_glucose │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── IV_make_glucose2 │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ └── IV_make_saline │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ ├── stoichiometry │ │ │ │ │ │ ├── Activity1_a │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity1_b │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity2_a │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity2_b │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity2_c │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity3_a │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity3_b │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity3_c │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity3_d │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity3_e │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity4_a │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity4_b │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity4_c │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Activity4_d │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── chloride_ga │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── chloride_precip │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── lead_ga │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ └── lead_precip │ │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ │ └── spectra.json │ │ │ │ │ └── thermodynamics │ │ │ │ │ │ ├── Cobalt │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Hotcold1 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Hotcold2 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Solar1 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Solar2 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim1 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim2 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim3 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim4 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim5 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim6 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ ├── Swim7 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ │ └── Thiocyanate │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ ├── colligative │ │ │ │ │ ├── bp_elevation │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ └── vapor_pressure │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ ├── default │ │ │ │ │ ├── assignment.json │ │ │ │ │ ├── configuration.json │ │ │ │ │ ├── reactions.json │ │ │ │ │ ├── solutions.json │ │ │ │ │ ├── species.json │ │ │ │ │ └── spectra.json │ │ │ │ ├── hotcoldpack │ │ │ │ │ ├── assignment.json │ │ │ │ │ ├── configuration.json │ │ │ │ │ ├── reactions.json │ │ │ │ │ ├── solutions.json │ │ │ │ │ ├── species.json │ │ │ │ │ └── spectra.json │ │ │ │ ├── iron_thiocyanate │ │ │ │ │ ├── assignment.json │ │ │ │ │ ├── configuration.json │ │ │ │ │ ├── reactions.json │ │ │ │ │ ├── solutions.json │ │ │ │ │ ├── species.json │ │ │ │ │ └── spectra.json │ │ │ │ ├── kinetics │ │ │ │ │ ├── cv_bleaching │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ ├── iodide_persulfate │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ ├── k1 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ ├── k2 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ ├── k3 │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ │ └── k4equilibrium │ │ │ │ │ │ ├── assignment.json │ │ │ │ │ │ ├── configuration.json │ │ │ │ │ │ ├── reactions.json │ │ │ │ │ │ ├── solutions.json │ │ │ │ │ │ ├── species.json │ │ │ │ │ │ └── spectra.json │ │ │ │ ├── metals │ │ │ │ │ ├── assignment.json │ │ │ │ │ ├── configuration.json │ │ │ │ │ ├── reactions.json │ │ │ │ │ ├── solutions.json │ │ │ │ │ ├── species.json │ │ │ │ │ └── spectra.json │ │ │ │ └── solubility │ │ │ │ │ ├── assignment.json │ │ │ │ │ ├── configuration.json │ │ │ │ │ ├── reactions.json │ │ │ │ │ ├── solutions.json │ │ │ │ │ ├── species.json │ │ │ │ │ └── spectra.json │ │ │ └── es │ │ │ │ └── default │ │ │ │ ├── assignment.json │ │ │ │ ├── configuration.json │ │ │ │ ├── reactions.json │ │ │ │ ├── solutions.json │ │ │ │ ├── species.json │ │ │ │ └── spectra.json │ │ │ ├── assignments_chemv_en.json │ │ │ ├── assignments_en.json │ │ │ └── assignments_es.json │ │ ├── styles │ │ └── icons │ │ │ ├── 1000mLBeaker.svg │ │ │ ├── 1000mLFlask.svg │ │ │ ├── 1000mLVolumetricFlask.svg │ │ │ ├── 100mLBottle_black.svg │ │ │ ├── 100mLBottle_blue.svg │ │ │ ├── 100mLBottle_green.svg │ │ │ ├── 100mLBottle_oarange.svg │ │ │ ├── 100mLBottle_orange.svg │ │ │ ├── 100mLBottle_red.svg │ │ │ ├── 100mLVolumetricFlask.svg │ │ │ ├── 10mLGraduatedCylinder.svg │ │ │ ├── 10mLPipette.svg │ │ │ ├── 2500mLBottle.svg │ │ │ ├── 250mLBeaker.svg │ │ │ ├── 250mLFlask.svg │ │ │ ├── 250mLVolumetricFlask.svg │ │ │ ├── 25mLGraduatedCylinder.svg │ │ │ ├── 25mLPipette.svg │ │ │ ├── 3LCarboy.svg │ │ │ ├── 500mLFlask.svg │ │ │ ├── 500mLVolumetricFlask.svg │ │ │ ├── 50mLBurette.svg │ │ │ ├── 50mLGraduatedCylinder.svg │ │ │ ├── 5mLPipette.svg │ │ │ ├── 600mLBeaker.svg │ │ │ ├── 600mLFlask.svg │ │ │ ├── DisposablePipette.svg │ │ │ ├── acidBase.svg │ │ │ ├── beaker.svg │ │ │ ├── bunsenBurner.svg │ │ │ ├── empty1000mLFlask.svg │ │ │ ├── foamCup.svg │ │ │ ├── gallon.svg │ │ │ ├── glassware.svg │ │ │ ├── icon_2500LBottle.svg │ │ │ ├── indicator.svg │ │ │ ├── logo.svg │ │ │ ├── scale.svg │ │ │ ├── solidBottle.svg │ │ │ ├── solutions.svg │ │ │ ├── stockSolution.svg │ │ │ ├── tools.svg │ │ │ ├── vessel.svg │ │ │ └── weighBoat.svg │ │ └── vlab.html ├── styles │ ├── adaptive │ │ ├── activities │ │ │ ├── dropdown.scss │ │ │ ├── fill-blanks.scss │ │ │ ├── image-carousel.scss │ │ │ ├── image.scss │ │ │ ├── mcq.scss │ │ │ ├── navigation-button.scss │ │ │ ├── popup.scss │ │ │ ├── slider.scss │ │ │ ├── text-flow.scss │ │ │ └── text-input.scss │ │ ├── adaptive-reset.scss │ │ ├── flowchart.scss │ │ ├── flowchart │ │ │ ├── dropdown.scss │ │ │ ├── mcq.scss │ │ │ ├── popup.scss │ │ │ ├── slider.scss │ │ │ ├── text-flow.scss │ │ │ └── text-input.scss │ │ ├── layout │ │ │ ├── background.scss │ │ │ ├── check-container.scss │ │ │ ├── content-container.scss │ │ │ └── header-container.scss │ │ ├── light.scss │ │ └── misc │ │ │ ├── animate.scss │ │ │ ├── color-palette.scss │ │ │ ├── font-families.scss │ │ │ └── normalize.scss │ ├── authoring │ │ ├── addscreenmodal.scss │ │ ├── admin.scss │ │ ├── advanced-authoring.scss │ │ ├── community.scss │ │ ├── conjugation.scss │ │ ├── controls.scss │ │ ├── definition.scss │ │ ├── description-list.scss │ │ ├── dialog.scss │ │ ├── figure.scss │ │ ├── flowchart-component-panels.scss │ │ ├── flowchart.scss │ │ ├── foreign.scss │ │ ├── formula.scss │ │ ├── image-upload.scss │ │ ├── index.scss │ │ ├── institutions.scss │ │ ├── layout │ │ │ └── workspace.scss │ │ ├── modal.scss │ │ ├── model-editors.scss │ │ ├── onboard-wizard.scss │ │ ├── project │ │ │ ├── overview.scss │ │ │ └── review.scss │ │ ├── property-panels.scss │ │ ├── publish.scss │ │ ├── react-flow.scss │ │ ├── react-typeahead.scss │ │ ├── shared │ │ │ ├── author-initials.scss │ │ │ └── phx.scss │ │ ├── static_page │ │ │ └── index.scss │ │ ├── template.scss │ │ ├── tree.scss │ │ └── typography.scss │ ├── common │ │ ├── activity-report.scss │ │ ├── box-form-container.scss │ │ ├── branding.scss │ │ ├── breadcrumb.scss │ │ ├── callout.scss │ │ ├── card-link.scss │ │ ├── changes.scss │ │ ├── controls.scss │ │ ├── curriculum.scss │ │ ├── drop-target.scss │ │ ├── elements.scss │ │ ├── help.scss │ │ ├── index.scss │ │ ├── list.scss │ │ ├── main.scss │ │ ├── mixins.scss │ │ ├── modal.scss │ │ ├── previous_next_nav.scss │ │ ├── purpose.scss │ │ ├── responsive-layout.scss │ │ ├── section-views.scss │ │ ├── survey.scss │ │ ├── user.scss │ │ ├── utils.scss │ │ └── video.scss │ ├── components │ │ ├── hierarchy_selector.scss │ │ └── index.scss │ ├── delivery │ │ ├── activity.scss │ │ ├── alternatives.scss │ │ ├── course-outline.scss │ │ ├── index.scss │ │ ├── layout │ │ │ └── delivery.scss │ │ ├── mixins.scss │ │ ├── multi-input.scss │ │ ├── page_delivery │ │ │ ├── after_finalized.scss │ │ │ ├── collab_space.scss │ │ │ └── page.scss │ │ └── phx.scss │ ├── index.scss │ ├── preview.scss │ └── preview │ │ ├── preview-tools-reset.scss │ │ └── preview-tools.scss ├── tailwind.config.js ├── tailwind.plugins.js ├── tailwind.theme.js ├── tailwind.tokens.js ├── test-report.html ├── test │ ├── activities │ │ ├── choices_test.ts │ │ ├── hints_test.ts │ │ ├── redux_delivery_test.ts │ │ ├── responses_test.ts │ │ ├── rules_test.ts │ │ └── stem_test.ts │ ├── adaptivity │ │ ├── fib_util_test.ts │ │ ├── rules_engine_test.ts │ │ ├── rules_mocks.ts │ │ └── scripting_test.ts │ ├── advanced_authoring │ │ ├── adaptivity │ │ │ ├── rule_editor_test.ts │ │ │ └── rule_mocks.ts │ │ ├── diagnostics │ │ │ ├── diagnostics_mocks.ts │ │ │ └── diagnostics_test.ts │ │ ├── flowchart │ │ │ └── screen_utils_test.ts │ │ ├── right_menu │ │ │ ├── component │ │ │ │ ├── component_mocks.ts │ │ │ │ └── component_settings_test.ts │ │ │ ├── lesson │ │ │ │ ├── lesson_mocks.ts │ │ │ │ └── lesson_settings_test.ts │ │ │ ├── question bank │ │ │ │ ├── bank_mocks.ts │ │ │ │ └── qb_setting_test.ts │ │ │ └── screen │ │ │ │ ├── screen_mocks.ts │ │ │ │ └── screen_settings_test.ts │ │ ├── sequence_mocks.ts │ │ └── sequence_test.ts │ ├── check_all_that_apply │ │ ├── cata_authoring_test.ts │ │ └── cata_delivery_test.tsx │ ├── command_button │ │ └── command_button_test.tsx │ ├── components │ │ ├── Evaluation_test.tsx │ │ ├── YoutubePlayer_test.tsx │ │ ├── activities │ │ │ └── short_answer │ │ │ │ └── sections │ │ │ │ └── NumericInput_test.tsx │ │ ├── content │ │ │ └── popup_test.tsx │ │ └── misc │ │ │ ├── DotDistributionChart_test.tsx │ │ │ └── VegaLiteRenderer_test.tsx │ ├── data │ │ ├── activities │ │ │ └── model │ │ │ │ └── choices_test.ts │ │ ├── content │ │ │ ├── factories_test.ts │ │ │ └── utils_test.ts │ │ └── editor │ │ │ └── PageEditorContent_test.ts │ ├── editor │ │ ├── markdown │ │ │ ├── markdown_deserializer_test.ts │ │ │ ├── markdown_lexer_test.ts │ │ │ ├── markdown_round_trip_test.ts │ │ │ ├── markdown_serializer_test.ts │ │ │ └── markdown_util_test.ts │ │ ├── normalize-test-utils.ts │ │ ├── normalize_block_test.ts │ │ ├── normalize_empty_element_test.ts │ │ ├── normalize_list_test.ts │ │ ├── normalize_root_node_test.ts │ │ ├── normalize_root_test.ts │ │ ├── normalize_spaces_test.ts │ │ ├── normalize_test.ts │ │ ├── page_editor_content_test.ts │ │ ├── paste │ │ │ ├── echoTableExample.ts │ │ │ ├── mswordListExample.ts │ │ │ ├── mswordTableExample.ts │ │ │ ├── paste_echo_test.ts │ │ │ ├── paste_gdocs_test.ts │ │ │ ├── paste_html_test.ts │ │ │ ├── paste_msword_test.ts │ │ │ ├── paste_test_utils.ts │ │ │ └── paste_youtube_test.ts │ │ ├── table │ │ │ ├── normalize_table_test.ts │ │ │ ├── table-test-util.ts │ │ │ └── table_cell_merge_test.ts │ │ └── validate_editor_content_test.ts │ ├── formula │ │ ├── mathjaxformula_test.tsx │ │ └── mathml_sanitizer_test.ts │ ├── multi_input │ │ └── multi_input_authoring_test.tsx │ ├── multiple_choice │ │ ├── mc_authoring_test.ts │ │ └── mc_delivery_test.tsx │ ├── ordering │ │ ├── ordering_authoring_test.ts │ │ └── ordering_delivery_test.tsx │ ├── phoenix │ │ └── countdownTimer_test.ts │ ├── response_multi │ │ └── response_multi_authoring_test.tsx │ ├── scheduler │ │ ├── agenda-visibility_test.tsx │ │ ├── date_utils_test.ts │ │ ├── expand-collapse-schedule_test.ts │ │ └── schedule-reset_test.ts │ ├── short_answer │ │ ├── short_answer_authoring_test.ts │ │ └── short_answer_delivery_test.tsx │ ├── utils │ │ ├── activity_mocks.ts │ │ ├── common_test.ts │ │ ├── date_test.ts │ │ ├── date_utils_test.ts │ │ ├── decoding_test.ts │ │ ├── editor_test.tsx │ │ ├── number_test.ts │ │ ├── path_operations_test.ts │ │ ├── value_expression_convertor_mocks.ts │ │ └── value_expression_convertor_test.ts │ └── writer │ │ ├── example_content.json │ │ ├── example_malformed_content.json │ │ ├── example_unsupported_content.json │ │ └── writer_test.ts ├── tsconfig.json ├── tsconfig.node.json ├── tsconfig.sdk.json ├── tslint.json ├── webpack.config.js ├── webpack.config.node.js ├── webpack.config.sdk.js └── yarn.lock ├── cloud └── generate-pdf-certificate │ ├── README.md │ └── lambda_function.py ├── config ├── config.exs ├── dev.exs ├── prod.exs ├── runtime.exs └── test.exs ├── configure-env-for-compose.sh ├── coveralls.json ├── dangerfile.ts ├── devmode.sh ├── devops ├── README.md ├── default.env ├── k8s │ ├── namespaces │ │ └── pr-template.yaml │ ├── policies │ │ ├── limit-range.yaml │ │ ├── network-policy.yaml │ │ └── resource-quota.yaml │ └── rbac │ │ └── pr-admin.yaml ├── kustomize │ ├── README.md │ ├── base │ │ ├── app-deployment.yaml │ │ ├── app-service.yaml │ │ ├── app.env │ │ ├── ingress-app.yaml │ │ ├── ingress-minio-api.yaml │ │ ├── ingress-minio-console.yaml │ │ ├── kustomization.yaml │ │ ├── minio-buckets-job.yaml │ │ ├── minio-middleware-api.yaml │ │ ├── minio-middleware-console.yaml │ │ ├── minio-service.yaml │ │ ├── minio-statefulset.yaml │ │ ├── postgres-service.yaml │ │ ├── postgres-statefulset.yaml │ │ └── serviceaccount.yaml │ └── overlays │ │ └── preview │ │ ├── app-overrides.env │ │ ├── kustomization.yaml │ │ ├── params.env │ │ └── patches │ │ ├── app-deployment.yaml │ │ ├── app-ingress.yaml │ │ ├── ingress-minio-api.yaml │ │ ├── ingress-minio-console.yaml │ │ └── minio-statefulset.yaml └── scripts │ ├── apply-preview-policies.sh │ └── smoke-test-preview.sh ├── doc_assets ├── conceptual.png ├── ingest.png ├── locking.png ├── message.png └── pub-er.png ├── docker-compose.yml ├── docs ├── README.md ├── features │ ├── canary │ │ ├── fdd.md │ │ ├── plan.md │ │ └── prd.md │ ├── docs_import │ │ ├── fdd.md │ │ ├── plan.md │ │ └── prd.md │ └── refactor_remix │ │ ├── fdd.md │ │ ├── plan.md │ │ └── prd.md ├── images │ ├── add_app.png │ ├── add_external_tool.png │ ├── admin_all_accounts.png │ ├── client_id.png │ ├── deployment_gear_icon.png │ ├── deployment_id.png │ ├── developer_key_json_url.png │ ├── developer_keys.png │ ├── developer_keys_link.png │ ├── institution_details_link.png │ ├── institution_example.png │ ├── institution_request.png │ ├── institutions_link.png │ ├── key_settings.png │ ├── on.png │ ├── register_institution.png │ ├── settings_add_app.png │ └── settings_link.png └── preview-environments.md ├── guides ├── activities │ ├── overview.md │ └── structures.md ├── design │ ├── attempt-handling.md │ ├── attempt.md │ ├── gdpr.md │ ├── genai.md │ ├── high-level.md │ ├── introduction.md │ ├── locking.md │ ├── locking.txt │ ├── misc.md │ ├── page-model.md │ ├── publication-model.md │ └── scoped_feature_flags.md ├── ingest │ ├── media.md │ └── overview.md ├── lti │ ├── config.md │ └── implementing.md ├── process │ ├── building.md │ ├── changelog-pr.md │ ├── claude-code.md │ ├── client-coding.md │ ├── deployment.md │ ├── pr-template.md │ └── server-coding.md ├── starting │ ├── developer.md │ ├── end-user.md │ ├── horizontal-scaling.md │ └── self-hosted.md └── upgrade │ ├── .env.example │ └── dev-env.md ├── lib ├── mix │ └── tasks │ │ ├── app │ │ └── version.ex │ │ ├── create_contained_objectives.ex │ │ ├── process_custom_activity_logs.ex │ │ └── scenarios.ex ├── oli.ex ├── oli │ ├── accounts.ex │ ├── accounts │ │ ├── author_browse_options.ex │ │ ├── author_notifier.ex │ │ ├── author_token.ex │ │ ├── schemas │ │ │ ├── author.ex │ │ │ ├── author_preferences.ex │ │ │ ├── system_role.ex │ │ │ ├── user.ex │ │ │ ├── user_preferences.ex │ │ │ └── vr_user_agent.ex │ │ ├── user_browse_options.ex │ │ ├── user_notifier.ex │ │ └── user_token.ex │ ├── activities.ex │ ├── activities │ │ ├── activity_map_entry.ex │ │ ├── activity_registration.ex │ │ ├── activity_registration_project.ex │ │ ├── manifest.ex │ │ ├── mode_spec.ex │ │ ├── model.ex │ │ ├── model │ │ │ ├── conditional_outcome.ex │ │ │ ├── explanation.ex │ │ │ ├── feedback.ex │ │ │ ├── feedback_action.ex │ │ │ ├── hint.ex │ │ │ ├── navigation_action.ex │ │ │ ├── part.ex │ │ │ ├── response.ex │ │ │ ├── state_update_action.ex │ │ │ ├── transformations.ex │ │ │ └── trigger.ex │ │ ├── parse_utils.ex │ │ ├── part_component_manifest.ex │ │ ├── part_component_map_entry.ex │ │ ├── part_component_registration.ex │ │ ├── part_component_registration_project.ex │ │ ├── realizer │ │ │ ├── logic.ex │ │ │ ├── logic │ │ │ │ ├── clause.ex │ │ │ │ └── expression.ex │ │ │ ├── query.ex │ │ │ ├── query │ │ │ │ ├── bank_entry.ex │ │ │ │ ├── builder.ex │ │ │ │ ├── executor.ex │ │ │ │ ├── paging.ex │ │ │ │ ├── result.ex │ │ │ │ └── source.ex │ │ │ └── selection.ex │ │ ├── reports │ │ │ ├── provider_list.ex │ │ │ ├── providers │ │ │ │ └── OliLikert.ex │ │ │ └── renderer.ex │ │ ├── state.ex │ │ ├── state │ │ │ ├── activity_state.ex │ │ │ └── part_state.ex │ │ ├── transformers.ex │ │ └── transformers │ │ │ ├── shuffle.ex │ │ │ ├── transformer.ex │ │ │ ├── variable_substitution.ex │ │ │ └── variable_substitution │ │ │ ├── common.ex │ │ │ ├── lambda_impl.ex │ │ │ ├── node_impl.ex │ │ │ ├── noop_impl.ex │ │ │ ├── rest_impl.ex │ │ │ └── strategy.ex │ ├── analytics │ │ ├── common.ex │ │ ├── common │ │ │ └── pipeline.ex │ │ ├── data_tables │ │ │ └── table.ex │ │ ├── datasets.ex │ │ ├── datasets │ │ │ ├── browse_job_options.ex │ │ │ ├── dataset_job.ex │ │ │ ├── emr_serverless.ex │ │ │ ├── job_config.ex │ │ │ ├── setttings.ex │ │ │ └── utils.ex │ │ ├── event_emitter.ex │ │ ├── summary.ex │ │ ├── summary │ │ │ ├── attempt_group.ex │ │ │ ├── browse_insights.ex │ │ │ ├── browse_insights_options.ex │ │ │ ├── resource_part_response.ex │ │ │ ├── resource_summary.ex │ │ │ ├── response_label.ex │ │ │ ├── response_summary.ex │ │ │ └── student_response.ex │ │ ├── xapi.ex │ │ └── xapi │ │ │ ├── events │ │ │ ├── attempt │ │ │ │ ├── activity_attempt_evaluated.ex │ │ │ │ ├── page_attempt_evaluated.ex │ │ │ │ ├── page_viewed.ex │ │ │ │ ├── part_attempt_evaluated.ex │ │ │ │ └── tutor_message.ex │ │ │ ├── context.ex │ │ │ └── video │ │ │ │ ├── completed.ex │ │ │ │ ├── paused.ex │ │ │ │ ├── played.ex │ │ │ │ └── seeked.ex │ │ │ ├── file_writer_uploader.ex │ │ │ ├── local_file_uploader.ex │ │ │ ├── pending_upload.ex │ │ │ ├── pipeline_config.ex │ │ │ ├── queue_producer.ex │ │ │ ├── statement_bundle.ex │ │ │ ├── statement_factory.ex │ │ │ ├── upload_pipeline.ex │ │ │ ├── uploader.ex │ │ │ └── utis.ex │ ├── application.ex │ ├── assent_auth.ex │ ├── assent_auth │ │ ├── author_assent_auth.ex │ │ ├── author_identity.ex │ │ ├── user_assent_auth.ex │ │ └── user_identity.ex │ ├── auditing.ex │ ├── auditing │ │ ├── browse_options.ex │ │ └── log_event.ex │ ├── authoring.ex │ ├── authoring │ │ ├── authors │ │ │ ├── author_project.ex │ │ │ └── project_role.ex │ │ ├── broadcasting │ │ │ ├── broadcaster.ex │ │ │ ├── messages.ex │ │ │ └── subscriber.ex │ │ ├── clone.ex │ │ ├── collaborators.ex │ │ ├── course.ex │ │ ├── course │ │ │ ├── creative_commons.ex │ │ │ ├── family.ex │ │ │ ├── project.ex │ │ │ ├── project_attributes.ex │ │ │ ├── project_resource.ex │ │ │ └── project_visibility.ex │ │ ├── editing │ │ │ ├── activity_context.ex │ │ │ ├── activity_editor.ex │ │ │ ├── bank_context.ex │ │ │ ├── bank_editor.ex │ │ │ ├── bib_entry_editor.ex │ │ │ ├── bibliography_context.ex │ │ │ ├── bibliography_editor.ex │ │ │ ├── blueprint.ex │ │ │ ├── container_editor.ex │ │ │ ├── objective_editor.ex │ │ │ ├── page_context.ex │ │ │ ├── page_editor.ex │ │ │ ├── resource_editor.ex │ │ │ └── util.ex │ │ ├── experiments.ex │ │ ├── locks.ex │ │ ├── media_library.ex │ │ ├── media_library │ │ │ ├── item_options.ex │ │ │ └── media_item.ex │ │ ├── project_export_worker.ex │ │ └── project_search.ex │ ├── automation_setup.ex │ ├── branding.ex │ ├── branding │ │ ├── brand.ex │ │ └── custom_labels.ex │ ├── certification_eligibility.ex │ ├── cldr.ex │ ├── consent.ex │ ├── consent │ │ └── cookies_consent.ex │ ├── constellation.ex │ ├── conversation.ex │ ├── conversation │ │ ├── conversation_message.ex │ │ ├── default_prompts.ex │ │ ├── page_content_cache.ex │ │ ├── page_trigger_reply_cache.ex │ │ ├── trigger.ex │ │ └── triggers.ex │ ├── date.ex │ ├── datetime.ex │ ├── delivery.ex │ ├── delivery │ │ ├── activity_provider.ex │ │ ├── activity_provider │ │ │ ├── attempt_prototype.ex │ │ │ └── result.ex │ │ ├── attempts.ex │ │ ├── attempts │ │ │ ├── activity_lifecycle.ex │ │ │ ├── activity_lifecycle │ │ │ │ ├── evaluate.ex │ │ │ │ ├── lambda.ex │ │ │ │ ├── node.ex │ │ │ │ ├── persistence.ex │ │ │ │ ├── roll_up.ex │ │ │ │ ├── rule-evaluator.ex │ │ │ │ └── utils.ex │ │ │ ├── artifact.ex │ │ │ ├── auto_submit │ │ │ │ └── worker.ex │ │ │ ├── core.ex │ │ │ ├── core │ │ │ │ ├── activity_attempt.ex │ │ │ │ ├── activity_attempt_save_file.ex │ │ │ │ ├── client_evaluation.ex │ │ │ │ ├── grade_update_browse_options.ex │ │ │ │ ├── lms_grade_update.ex │ │ │ │ ├── part_attempt.ex │ │ │ │ ├── resource_access.ex │ │ │ │ ├── resource_attempt.ex │ │ │ │ └── student_input.ex │ │ │ ├── manual_grading.ex │ │ │ ├── manual_grading │ │ │ │ └── browse_options.ex │ │ │ ├── page_lifecycle.ex │ │ │ ├── page_lifecycle │ │ │ │ ├── attempt_state.ex │ │ │ │ ├── broadcaster.ex │ │ │ │ ├── common.ex │ │ │ │ ├── finalization_context.ex │ │ │ │ ├── finalization_summary.ex │ │ │ │ ├── grade_update_payload.ex │ │ │ │ ├── grade_update_worker.ex │ │ │ │ ├── graded.ex │ │ │ │ ├── hierarchy.ex │ │ │ │ ├── history_summary.ex │ │ │ │ ├── lifecycle.ex │ │ │ │ ├── review_context.ex │ │ │ │ ├── ungraded.ex │ │ │ │ └── visit_context.ex │ │ │ ├── part_attempt_cleaner.ex │ │ │ └── scoring.ex │ │ ├── audience.ex │ │ ├── certificates.ex │ │ ├── certificates │ │ │ └── certificate_renderer.ex │ │ ├── custom_logs │ │ │ ├── custom_activity_log.ex │ │ │ └── legacy_logs.ex │ │ ├── delivery_policy.ex │ │ ├── depot.ex │ │ ├── depot │ │ │ ├── depot_desc.ex │ │ │ ├── match_spec_translator.ex │ │ │ └── serializer.ex │ │ ├── depot_coordinator.ex │ │ ├── depot_warmer.ex │ │ ├── distributed_depot_coordinator.ex │ │ ├── evaluation.ex │ │ ├── evaluation │ │ │ ├── actions │ │ │ │ ├── feedback_action.ex │ │ │ │ ├── navigation_action.ex │ │ │ │ ├── state_update_action.ex │ │ │ │ └── submission_action.ex │ │ │ ├── adaptive.ex │ │ │ ├── evaluation_context.ex │ │ │ ├── evaluator.ex │ │ │ ├── explanation.ex │ │ │ ├── explanation_context.ex │ │ │ ├── parser.ex │ │ │ ├── result.ex │ │ │ ├── rule.ex │ │ │ └── standard.ex │ │ ├── experiments.ex │ │ ├── experiments │ │ │ ├── experiment_builder.ex │ │ │ ├── log_worker.ex │ │ │ └── segment_builder.ex │ │ ├── extrinsic_state.ex │ │ ├── gating.ex │ │ ├── gating │ │ │ ├── condition_types.ex │ │ │ ├── condition_types │ │ │ │ ├── always_open.ex │ │ │ │ ├── condition_context.ex │ │ │ │ ├── condition_type.ex │ │ │ │ ├── finished.ex │ │ │ │ ├── progress.ex │ │ │ │ ├── schedule.ex │ │ │ │ └── started.ex │ │ │ ├── gating_condition.ex │ │ │ └── gating_condition_data.ex │ │ ├── granted_certificates.ex │ │ ├── hierarchy.ex │ │ ├── hierarchy │ │ │ └── hierarchy_node.ex │ │ ├── metrics.ex │ │ ├── page │ │ │ ├── activity_context.ex │ │ │ ├── model_pruner.ex │ │ │ ├── objectives_rollup.ex │ │ │ ├── page_context.ex │ │ │ └── prologue_context.ex │ │ ├── paywall.ex │ │ ├── paywall │ │ │ ├── access_summary.ex │ │ │ ├── discount.ex │ │ │ ├── payment.ex │ │ │ └── providers │ │ │ │ ├── cashnet.ex │ │ │ │ └── stripe.ex │ │ ├── previous_next_index.ex │ │ ├── recommended_actions.ex │ │ ├── remix.ex │ │ ├── remix │ │ │ └── state.ex │ │ ├── research_consent.ex │ │ ├── score_as_you_go_notifications.ex │ │ ├── sections.ex │ │ ├── sections │ │ │ ├── authors_sections.ex │ │ │ ├── blueprint.ex │ │ │ ├── blueprint_browse_options.ex │ │ │ ├── browse.ex │ │ │ ├── browse_options.ex │ │ │ ├── certificates │ │ │ │ ├── certificate.ex │ │ │ │ ├── email_templates.ex │ │ │ │ └── workers │ │ │ │ │ ├── check_certification.ex │ │ │ │ │ ├── generate_pdf.ex │ │ │ │ │ └── mailer.ex │ │ │ ├── contained_objective.ex │ │ │ ├── contained_objectives_builder.ex │ │ │ ├── contained_page.ex │ │ │ ├── enrollment.ex │ │ │ ├── enrollment_browse_options.ex │ │ │ ├── enrollment_context_role.ex │ │ │ ├── granted_certificate.ex │ │ │ ├── minimal_hierarchy.ex │ │ │ ├── post_processing.ex │ │ │ ├── scheduling.ex │ │ │ ├── section.ex │ │ │ ├── section_cache.ex │ │ │ ├── section_invite.ex │ │ │ ├── section_invites.ex │ │ │ ├── section_resource.ex │ │ │ ├── section_resource_depot.ex │ │ │ ├── section_resource_migration.ex │ │ │ ├── section_specification.ex │ │ │ ├── section_visibility.ex │ │ │ ├── sections_projects_publications.ex │ │ │ ├── updates.ex │ │ │ └── user_group.ex │ │ ├── settings.ex │ │ ├── settings │ │ │ ├── assessment_settings.ex │ │ │ ├── auto_submit_custodian.ex │ │ │ ├── combined.ex │ │ │ ├── settings_changes.ex │ │ │ └── student_exception.ex │ │ ├── singleton_depot_coordinator.ex │ │ ├── snapshots.ex │ │ ├── snapshots │ │ │ ├── s3_uploader_worker.ex │ │ │ └── worker.ex │ │ ├── text_blob.ex │ │ ├── text_blob │ │ │ └── storage.ex │ │ ├── transfer.ex │ │ ├── updates │ │ │ ├── broadcaster.ex │ │ │ ├── messages.ex │ │ │ ├── subscriber.ex │ │ │ └── worker.ex │ │ └── utils.ex │ ├── email.ex │ ├── encrypted │ │ └── binary.ex │ ├── feature_gate.ex │ ├── feature_telemetry.ex │ ├── features.ex │ ├── features │ │ ├── feature.ex │ │ └── feature_state.ex │ ├── gen_ai.ex │ ├── gen_ai │ │ ├── agent.ex │ │ ├── agent │ │ │ ├── action_comparator.ex │ │ │ ├── critic.ex │ │ │ ├── decision.ex │ │ │ ├── demo_policy.ex │ │ │ ├── llm_bridge.ex │ │ │ ├── loop_detector.ex │ │ │ ├── loop_detectors │ │ │ │ ├── alternating_pattern.ex │ │ │ │ ├── consecutive_identical.ex │ │ │ │ └── repeated_identical.ex │ │ │ ├── mcp_tool_registry.ex │ │ │ ├── patcher.ex │ │ │ ├── persistence.ex │ │ │ ├── policy.ex │ │ │ ├── pub_sub.ex │ │ │ ├── registry.ex │ │ │ ├── run_supervisor.ex │ │ │ ├── server.ex │ │ │ ├── state_analyzer.ex │ │ │ ├── summarizer.ex │ │ │ ├── tool.ex │ │ │ └── tool_broker.ex │ │ ├── completions.ex │ │ ├── completions │ │ │ ├── claude_provider.ex │ │ │ ├── function.ex │ │ │ ├── message.ex │ │ │ ├── null_provider.ex │ │ │ ├── open_ai_compliant_provider.ex │ │ │ ├── provider.ex │ │ │ ├── registered_model.ex │ │ │ ├── service_config.ex │ │ │ └── utils.ex │ │ ├── dialogue │ │ │ ├── configuration.ex │ │ │ ├── server.ex │ │ │ └── state.ex │ │ └── feature_config.ex │ ├── google_docs │ │ ├── activity_builder.ex │ │ ├── activity_builder │ │ │ └── utils.ex │ │ ├── check_all_that_apply_builder.ex │ │ ├── client.ex │ │ ├── custom_elements.ex │ │ ├── dropdown_builder.ex │ │ ├── import.ex │ │ ├── markdown │ │ │ └── renderer.ex │ │ ├── markdown_parser.ex │ │ ├── mcq_builder.ex │ │ ├── media_ingestor.ex │ │ ├── short_answer_builder.ex │ │ └── warnings.ex │ ├── grading.ex │ ├── grading │ │ ├── gradebook_row.ex │ │ └── gradebook_score.ex │ ├── groups.ex │ ├── groups │ │ ├── community.ex │ │ ├── community_account.ex │ │ ├── community_institution.ex │ │ └── community_visibility.ex │ ├── help │ │ ├── course_data.ex │ │ ├── dispatcher.ex │ │ ├── help_content.ex │ │ ├── help_request.ex │ │ ├── providers │ │ │ ├── email_help.ex │ │ │ └── freshdesk_help.ex │ │ └── requester_data.ex │ ├── http.ex │ ├── institutions.ex │ ├── institutions │ │ ├── institution.ex │ │ ├── pending_registration.ex │ │ ├── registration_browse_options.ex │ │ └── sso_jwks.ex │ ├── interop.ex │ ├── interop │ │ ├── api_key.ex │ │ ├── custom_activities │ │ │ ├── activity.ex │ │ │ ├── activity_attempt.ex │ │ │ ├── activity_base.ex │ │ │ ├── attempt_history.ex │ │ │ ├── attribute.ex │ │ │ ├── authentication.ex │ │ │ ├── authorizations.ex │ │ │ ├── file.ex │ │ │ ├── file_directory.ex │ │ │ ├── file_record.ex │ │ │ ├── grading.ex │ │ │ ├── grading_attributes.ex │ │ │ ├── instructors.ex │ │ │ ├── item_info.ex │ │ │ ├── launch_attributes.ex │ │ │ ├── logging.ex │ │ │ ├── metadata.ex │ │ │ ├── problem.ex │ │ │ ├── record_context.ex │ │ │ ├── registration.ex │ │ │ ├── resource_files.ex │ │ │ ├── resource_info.ex │ │ │ ├── resource_type.ex │ │ │ ├── score.ex │ │ │ ├── section.ex │ │ │ ├── storage.ex │ │ │ ├── super_activity_client.ex │ │ │ ├── super_activity_session.ex │ │ │ ├── url.ex │ │ │ ├── user.ex │ │ │ └── web_content.ex │ │ ├── export.ex │ │ ├── ingest.ex │ │ ├── ingest │ │ │ ├── preprocessor.ex │ │ │ ├── preprocessor │ │ │ │ ├── common.ex │ │ │ │ ├── migrate.ex │ │ │ │ ├── parse.ex │ │ │ │ ├── validate.ex │ │ │ │ └── verify.ex │ │ │ ├── processor.ex │ │ │ ├── processor │ │ │ │ ├── activities.ex │ │ │ │ ├── alternatives.ex │ │ │ │ ├── bib_entries.ex │ │ │ │ ├── common.ex │ │ │ │ ├── hierarchy.ex │ │ │ │ ├── hyperlinks.ex │ │ │ │ ├── internal_activity_refs.ex │ │ │ │ ├── media_items.ex │ │ │ │ ├── objectives.ex │ │ │ │ ├── pages.ex │ │ │ │ ├── products.ex │ │ │ │ ├── project.ex │ │ │ │ ├── published_resources.ex │ │ │ │ ├── rewiring.ex │ │ │ │ └── tags.ex │ │ │ ├── scalable_ingest.ex │ │ │ └── state.ex │ │ ├── legacy_support.ex │ │ ├── rewire_links.ex │ │ └── scrub.ex │ ├── inventories.ex │ ├── inventories │ │ └── publisher.ex │ ├── log_incomplete_request.ex │ ├── logger_truncator.ex │ ├── lti │ │ ├── access_token_adapter.ex │ │ ├── access_token_library.ex │ │ ├── access_token_test.ex │ │ ├── deployment.ex │ │ ├── lti_params.ex │ │ ├── platform_external_tools.ex │ │ ├── platform_external_tools │ │ │ ├── browse_options.ex │ │ │ ├── lti_external_tool_activity_deployment.ex │ │ │ └── lti_section_resource_deep_link.ex │ │ ├── platform_instances.ex │ │ ├── registration.ex │ │ └── tokens.ex │ ├── mailer.ex │ ├── mailer │ │ └── send_email_worker.ex │ ├── mcp │ │ ├── auth.ex │ │ ├── auth │ │ │ ├── authorization.ex │ │ │ ├── bearer_token.ex │ │ │ ├── bearer_token_usage.ex │ │ │ └── token_generator.ex │ │ ├── resources │ │ │ ├── example_resource.ex │ │ │ ├── examples_resource.ex │ │ │ ├── hierarchy_builder.ex │ │ │ ├── project_resources.ex │ │ │ ├── schema_resource.ex │ │ │ ├── schemas_resource.ex │ │ │ └── uri_builder.ex │ │ ├── server.ex │ │ ├── tools │ │ │ ├── activity_test_eval_tool.ex │ │ │ ├── activity_validation_tool.ex │ │ │ └── create_activity_tool.ex │ │ └── usage_tracker.ex │ ├── notifications.ex │ ├── notifications │ │ ├── pub_sub.ex │ │ ├── system_message.ex │ │ └── worker.ex │ ├── open_ai │ │ └── client.ex │ ├── part_components.ex │ ├── predefined.ex │ ├── publishing.ex │ ├── publishing │ │ ├── authoring_resolver.ex │ │ ├── delivery_resolver.ex │ │ ├── mappings │ │ │ ├── objective_mapping_transfer.ex │ │ │ ├── published_resource.ex │ │ │ └── revision_part.ex │ │ ├── publications │ │ │ ├── diff_agent.ex │ │ │ ├── publication.ex │ │ │ ├── publication_diff.ex │ │ │ └── publication_diff_key.ex │ │ ├── resolver.ex │ │ ├── tracker.ex │ │ ├── unique_ids.ex │ │ └── updating │ │ │ ├── airro.ex │ │ │ ├── merge.ex │ │ │ └── types.ex │ ├── qa.ex │ ├── qa │ │ ├── review.ex │ │ ├── reviewers │ │ │ ├── accessibility.ex │ │ │ ├── content.ex │ │ │ ├── equity.ex │ │ │ ├── pedagogy.ex │ │ │ └── selection_worker.ex │ │ ├── reviews.ex │ │ ├── uri_validator.ex │ │ ├── utils.ex │ │ ├── warning.ex │ │ └── warnings.ex │ ├── recaptcha.ex │ ├── registrar.ex │ ├── release.ex │ ├── rendering.ex │ ├── rendering │ │ ├── activity.ex │ │ ├── activity │ │ │ ├── activity_summary.ex │ │ │ ├── common.ex │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── alternatives.ex │ │ ├── alternatives │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── break.ex │ │ ├── break │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── content.ex │ │ ├── content │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ ├── mathml_sanitizer.ex │ │ │ ├── plaintext.ex │ │ │ ├── resource_summary.ex │ │ │ └── selection.ex │ │ ├── context.ex │ │ ├── elements.ex │ │ ├── elements │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── error.ex │ │ ├── error │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── group.ex │ │ ├── group │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── page.ex │ │ ├── page │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── report.ex │ │ ├── report │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ ├── survey.ex │ │ ├── survey │ │ │ ├── html.ex │ │ │ ├── markdown.ex │ │ │ └── plaintext.ex │ │ └── utils.ex │ ├── repo.ex │ ├── repo │ │ ├── paging.ex │ │ └── sorting.ex │ ├── resources.ex │ ├── resources │ │ ├── activity_browse.ex │ │ ├── activity_browse_options.ex │ │ ├── alternatives.ex │ │ ├── alternatives │ │ │ ├── alternatives_strategy.ex │ │ │ ├── alternatives_strategy_context.ex │ │ │ ├── decision_point_strategy.ex │ │ │ ├── select_all_strategy.ex │ │ │ ├── selection.ex │ │ │ └── user_section_preference_strategy.ex │ │ ├── collaboration.ex │ │ ├── collaboration │ │ │ ├── collab_space_config.ex │ │ │ ├── post.ex │ │ │ ├── post_content.ex │ │ │ ├── user_reaction_post.ex │ │ │ └── user_read_post.ex │ │ ├── content_migrator.ex │ │ ├── explanation_strategy.ex │ │ ├── legacy.ex │ │ ├── numbering.ex │ │ ├── page_browse.ex │ │ ├── page_browse_options.ex │ │ ├── page_content.ex │ │ ├── page_content │ │ │ └── TraversalContext.ex │ │ ├── resource.ex │ │ ├── resource_type.ex │ │ ├── revision.ex │ │ ├── revision_intro_video.ex │ │ └── scoring_strategy.ex │ ├── scenarios.ex │ ├── scenarios │ │ ├── builder.ex │ │ ├── directive_parser.ex │ │ ├── directive_types.ex │ │ ├── directive_validator.ex │ │ ├── directives │ │ │ ├── activity_handler.ex │ │ │ ├── activity_processor.ex │ │ │ ├── answer_question_handler.ex │ │ │ ├── assert │ │ │ │ ├── general_assertion.ex │ │ │ │ ├── helpers.ex │ │ │ │ ├── proficiency_assertion.ex │ │ │ │ ├── progress_assertion.ex │ │ │ │ ├── resource_assertion.ex │ │ │ │ └── structure_assertion.ex │ │ │ ├── assert_handler.ex │ │ │ ├── clone_handler.ex │ │ │ ├── customize_handler.ex │ │ │ ├── edit_page_handler.ex │ │ │ ├── enrollment_handler.ex │ │ │ ├── hook_handler.ex │ │ │ ├── institution_handler.ex │ │ │ ├── manipulate_handler.ex │ │ │ ├── product_handler.ex │ │ │ ├── project_handler.ex │ │ │ ├── publish_handler.ex │ │ │ ├── remix_handler.ex │ │ │ ├── section_handler.ex │ │ │ ├── update_handler.ex │ │ │ ├── use_handler.ex │ │ │ ├── user_handler.ex │ │ │ └── view_practice_page_handler.ex │ │ ├── engine.ex │ │ ├── hooks.ex │ │ ├── ops.ex │ │ ├── section_ops.ex │ │ ├── structure_assertions.ex │ │ └── types.ex │ ├── scoped_feature_flags.ex │ ├── scoped_feature_flags │ │ ├── cache_subscriber.ex │ │ ├── defined_features.ex │ │ ├── features.ex │ │ ├── rollouts.ex │ │ ├── scoped_feature_exemption.ex │ │ ├── scoped_feature_flag_state.ex │ │ └── scoped_feature_rollout.ex │ ├── search.ex │ ├── search │ │ ├── embedding_worker.ex │ │ ├── embeddings.ex │ │ ├── markdown_renderer.ex │ │ ├── revision_embeddings.ex │ │ └── updater.ex │ ├── slack.ex │ ├── tags.ex │ ├── tags │ │ ├── project_tag.ex │ │ ├── section_tag.ex │ │ └── tag.ex │ ├── timing.ex │ ├── torus_doc.ex │ ├── torus_doc │ │ ├── activities │ │ │ ├── cata_parser.ex │ │ │ ├── mcq_converter.ex │ │ │ ├── mcq_parser.ex │ │ │ ├── ordering_parser.ex │ │ │ └── short_answer_converter.ex │ │ ├── activity_converter.ex │ │ ├── activity_parser.ex │ │ ├── clone_demo.exs │ │ ├── markdown │ │ │ ├── README.md │ │ │ ├── block_parser.ex │ │ │ ├── inline_parser.ex │ │ │ ├── markdown_parser.ex │ │ │ └── table_parser.ex │ │ ├── mcq_demo.exs │ │ ├── page_converter.ex │ │ └── page_parser.ex │ ├── utils.ex │ ├── utils │ │ ├── appsignal.ex │ │ ├── appsignal_behaviour.ex │ │ ├── autoretry.ex │ │ ├── bib_utils.ex │ │ ├── data_generators │ │ │ ├── name_generator.ex │ │ │ └── sampler.ex │ │ ├── database.ex │ │ ├── db_seeder.ex │ │ ├── flame_graph.ex │ │ ├── language_codes_iso639.ex │ │ ├── load_testing.ex │ │ ├── purposes.ex │ │ ├── recaptcha.ex │ │ ├── s3_storage.ex │ │ ├── schema_resolver.ex │ │ ├── seeder.ex │ │ ├── seeder │ │ │ ├── accounts_fixtures.ex │ │ │ ├── attempt.ex │ │ │ ├── project.ex │ │ │ ├── section.ex │ │ │ ├── session.ex │ │ │ ├── student_attempt_seed.ex │ │ │ └── utils.ex │ │ ├── slug.ex │ │ ├── stagehand.ex │ │ ├── stagehand │ │ │ ├── simulate_progress.ex │ │ │ └── weighted_random.ex │ │ └── time.ex │ ├── validation.ex │ ├── validation │ │ └── content_validator.ex │ ├── vault.ex │ ├── vendor_properties.ex │ ├── versioning │ │ └── revision_tree │ │ │ ├── node.ex │ │ │ └── tree.ex │ ├── vr_lookup_cache.ex │ └── vr_user_agents.ex ├── oli_web.ex ├── oli_web │ ├── admin │ │ └── browse_filters.ex │ ├── api_spec.ex │ ├── author_auth.ex │ ├── backgrounds.ex │ ├── cache_body_reader.ex │ ├── channels │ │ ├── directed_discussion_channel.ex │ │ ├── global_user_state_channel.ex │ │ ├── section_user_state_channel.ex │ │ └── user_socket.ex │ ├── collect_help_request_info.ex │ ├── common │ │ ├── assent_auth_web.ex │ │ ├── breadcrumb.ex │ │ ├── format_date_time.ex │ │ ├── links.ex │ │ ├── mathjax_script.ex │ │ ├── params.ex │ │ ├── react.ex │ │ ├── session_context.ex │ │ └── source_image.ex │ ├── components │ │ ├── auth.ex │ │ ├── common.ex │ │ ├── delivery │ │ │ ├── actions │ │ │ │ ├── actions.ex │ │ │ │ ├── sections_to_transfer_table_model.ex │ │ │ │ ├── students_to_transfer_table_model.ex │ │ │ │ └── transfer_enrollment.ex │ │ │ ├── activity_helpers.ex │ │ │ ├── adaptive_iframe.ex │ │ │ ├── assignments │ │ │ │ ├── assignment_card.ex │ │ │ │ └── assignments_list.ex │ │ │ ├── buttons.ex │ │ │ ├── content │ │ │ │ ├── card_highlights.ex │ │ │ │ ├── content.ex │ │ │ │ ├── content_table_model.ex │ │ │ │ ├── multi_select.ex │ │ │ │ ├── progress.ex │ │ │ │ └── select_dropdown.ex │ │ │ ├── course_content.ex │ │ │ ├── course_lastest_visited_page.ex │ │ │ ├── course_outline.ex │ │ │ ├── course_progress_panel.ex │ │ │ ├── deliberate_practice_card.ex │ │ │ ├── dialogue.ex │ │ │ ├── discussion_activity │ │ │ │ ├── discussion_activity.ex │ │ │ │ └── discussion_table_model.ex │ │ │ ├── discussion_board.ex │ │ │ ├── discussion_panel.ex │ │ │ ├── discussion_post.ex │ │ │ ├── exploration_card.ex │ │ │ ├── exploration_list.ex │ │ │ ├── exploration_shade.ex │ │ │ ├── instructor_dashboard.ex │ │ │ ├── layouts.ex │ │ │ ├── learning_objectives │ │ │ │ ├── expanded_objective_view.ex │ │ │ │ ├── learning_objectives.ex │ │ │ │ ├── objectives_table_model.ex │ │ │ │ ├── related_activities_table_model.ex │ │ │ │ ├── student_proficiency_list.ex │ │ │ │ ├── student_proficiency_table_model.ex │ │ │ │ ├── sub_objectives_list.ex │ │ │ │ └── sub_objectives_table_model.ex │ │ │ ├── learning_opportunities.ex │ │ │ ├── list_navigator.ex │ │ │ ├── lti_external_tools.ex │ │ │ ├── page_delivery.ex │ │ │ ├── page_navigator.ex │ │ │ ├── pages │ │ │ │ ├── activities_table_model.ex │ │ │ │ ├── pages.ex │ │ │ │ └── pages_table_model.ex │ │ │ ├── progress │ │ │ │ ├── progress.ex │ │ │ │ └── student_progress_table_model.ex │ │ │ ├── quiz_scores │ │ │ │ └── quiz_scores.ex │ │ │ ├── recommended_actions.ex │ │ │ ├── schedule.ex │ │ │ ├── schedule_gating_assessement.ex │ │ │ ├── section_title.ex │ │ │ ├── student.ex │ │ │ ├── students │ │ │ │ ├── certificates │ │ │ │ │ ├── bulk_certificate_status_email.ex │ │ │ │ │ ├── email_notification_modals.ex │ │ │ │ │ ├── pending_approval_component.ex │ │ │ │ │ └── state_approval_component.ex │ │ │ │ ├── email_button.ex │ │ │ │ ├── email_modal.ex │ │ │ │ └── students.ex │ │ │ ├── surveys │ │ │ │ ├── surveys.ex │ │ │ │ └── surveys_assessments_table_model.ex │ │ │ ├── up_next.ex │ │ │ ├── user_account.ex │ │ │ └── utils.ex │ │ ├── email_list.ex │ │ ├── filter_panel.ex │ │ ├── footer.ex │ │ ├── header.ex │ │ ├── hierarchy_selector.ex │ │ ├── layouts.ex │ │ ├── layouts │ │ │ ├── instructor_dashboard.html.heex │ │ │ ├── instructor_dashboard_schedule.html.heex │ │ │ ├── page.html.heex │ │ │ ├── student_delivery.html.heex │ │ │ ├── student_delivery_lesson.html.heex │ │ │ └── workspace.html.heex │ │ ├── live_modal.ex │ │ ├── modal.ex │ │ ├── project │ │ │ ├── advanced_activity_item.ex │ │ │ ├── async_exporter.ex │ │ │ └── overview.ex │ │ ├── scoped_feature_toggle_component.ex │ │ ├── tech_support_live.ex │ │ ├── timezone.ex │ │ └── utils.ex │ ├── controllers │ │ ├── activity_bank_controller.ex │ │ ├── activity_manage_controller.ex │ │ ├── activity_review_controller.ex │ │ ├── api │ │ │ ├── activity_bank_controller.ex │ │ │ ├── activity_controller.ex │ │ │ ├── activity_registration_controller.ex │ │ │ ├── activity_report_data_controller.ex │ │ │ ├── attempt_controller.ex │ │ │ ├── automation_setup_controller.ex │ │ │ ├── bib_entry_controller.ex │ │ │ ├── blob_storage_controller.ex │ │ │ ├── blueprint_controller.ex │ │ │ ├── directed_discussion_controller.ex │ │ │ ├── ecl_controller.ex │ │ │ ├── global_state_controller.ex │ │ │ ├── health_controller.ex │ │ │ ├── helpers.ex │ │ │ ├── lock_controller.ex │ │ │ ├── lti_ags_controller.ex │ │ │ ├── lti_controller.ex │ │ │ ├── media_controller.ex │ │ │ ├── objectives_controller.ex │ │ │ ├── open_and_free_controller.ex │ │ │ ├── page_lifecycle_controller.ex │ │ │ ├── payment_controller.ex │ │ │ ├── product_controller.ex │ │ │ ├── publisher_controller.ex │ │ │ ├── resource_attempt_state_controller.ex │ │ │ ├── resource_controller.ex │ │ │ ├── rules_engine_controller.ex │ │ │ ├── scheduling_controller.ex │ │ │ ├── section_state_controller.ex │ │ │ ├── state.ex │ │ │ ├── tag_controller.ex │ │ │ ├── trigger_point_controller.ex │ │ │ ├── variable_evaluation_controller.ex │ │ │ └── xapi_controller.ex │ │ ├── api_schemas.ex │ │ ├── author_authorization_controller.ex │ │ ├── author_session_controller.ex │ │ ├── bibliography_controller.ex │ │ ├── brand_controller.ex │ │ ├── certificate_controller.ex │ │ ├── cognito_controller.ex │ │ ├── collaborator_controller.ex │ │ ├── cookie_consent_controller.ex │ │ ├── delivery_controller.ex │ │ ├── deployment_controller.ex │ │ ├── dev_controller.ex │ │ ├── experiment_controller.ex │ │ ├── fallback_controller.ex │ │ ├── granted_certificates_controller.ex │ │ ├── ingest_controller.ex │ │ ├── institution_controller.ex │ │ ├── invite_controller.ex │ │ ├── launch_controller.ex │ │ ├── legacy_logs_controller.ex │ │ ├── legacy_superactivity_controller.ex │ │ ├── legacy_support_controller.ex │ │ ├── lti_controller.ex │ │ ├── lti_html.ex │ │ ├── lti_html │ │ │ ├── deep_link_error.html.heex │ │ │ └── deep_link_success.html.heex │ │ ├── open_and_free_controller.ex │ │ ├── page_delivery_controller.ex │ │ ├── payment_controller.ex │ │ ├── payment_providers │ │ │ ├── cashnet_controller.ex │ │ │ ├── no_provider_controller.ex │ │ │ └── stripe_controller.ex │ │ ├── project_controller.ex │ │ ├── project_plugs.ex │ │ ├── projects_controller.ex │ │ ├── registration_controller.ex │ │ ├── resource_controller.ex │ │ ├── spot_check_controller.ex │ │ ├── static_page_controller.ex │ │ ├── user_authorization_controller.ex │ │ ├── user_session_controller.ex │ │ └── workspace_controller.ex │ ├── dataset_status_poller.ex │ ├── delegated_events.ex │ ├── delivery_web.ex │ ├── endpoint.ex │ ├── gettext.ex │ ├── icons.ex │ ├── live │ │ ├── admin │ │ │ ├── admin_view.ex │ │ │ ├── agent_monitor_view.ex │ │ │ ├── audit_log │ │ │ │ └── table_model.ex │ │ │ ├── audit_log_live.ex │ │ │ ├── canary_rollouts_live.ex │ │ │ ├── external_tools │ │ │ │ ├── details_view.ex │ │ │ │ ├── external_tools_view.ex │ │ │ │ ├── form.ex │ │ │ │ ├── new_external_tool_view.ex │ │ │ │ ├── table_model.ex │ │ │ │ └── usage_view.ex │ │ │ ├── institutions │ │ │ │ ├── index_live.ex │ │ │ │ ├── research_consent_view.ex │ │ │ │ └── sections_and_students_view.ex │ │ │ ├── mcp_tokens │ │ │ │ ├── mcp_tokens_view.ex │ │ │ │ └── table_model.ex │ │ │ ├── part_attempts_view.ex │ │ │ ├── registrations │ │ │ │ ├── registrations_table_model.ex │ │ │ │ └── registrations_view.ex │ │ │ ├── restore_user_progress.ex │ │ │ ├── upload_pipeline_view.ex │ │ │ └── vr_user_agents_view.ex │ │ ├── api_keys │ │ │ └── api_keys_live.ex │ │ ├── attempt │ │ │ ├── attempt_live.ex │ │ │ └── table_model.ex │ │ ├── author_confirmation_instructions_live.ex │ │ ├── author_confirmation_live.ex │ │ ├── author_forgot_password_live.ex │ │ ├── author_login_live.ex │ │ ├── author_registration_live.ex │ │ ├── author_reset_password_live.ex │ │ ├── author_settings_live.ex │ │ ├── authors │ │ │ └── invitations │ │ │ │ └── invite_view.ex │ │ ├── breadcrumb │ │ │ ├── breadcrumb.ex │ │ │ ├── breadcrumb_live.ex │ │ │ ├── breadcrumb_trail_live.ex │ │ │ ├── breadcrumb_trail_workspace_live.ex │ │ │ └── breadcrumb_workspace_live.ex │ │ ├── certificates │ │ │ ├── certificate_settings_live.ex │ │ │ ├── certificates_issued_table_model.ex │ │ │ └── components │ │ │ │ ├── certificates_issued_tab.ex │ │ │ │ ├── design_tab.ex │ │ │ │ └── thresholds_tab.ex │ │ ├── collaboration_live │ │ │ ├── active_users.ex │ │ │ ├── admin_table_model.ex │ │ │ ├── collab_space_config_view.ex │ │ │ ├── collab_space_view.ex │ │ │ ├── index_view.ex │ │ │ ├── instructor_table_model.ex │ │ │ └── posts │ │ │ │ ├── list.ex │ │ │ │ ├── show.ex │ │ │ │ └── sort.ex │ │ ├── collaborators │ │ │ └── invitations │ │ │ │ └── invite_view.ex │ │ ├── common │ │ │ ├── cancel_modal.ex │ │ │ ├── card_listing.ex │ │ │ ├── check.ex │ │ │ ├── chip.ex │ │ │ ├── components.ex │ │ │ ├── confirm_modal.ex │ │ │ ├── custom_labels_form.ex │ │ │ ├── delete_modal.ex │ │ │ ├── delete_modal_no_confirmation.ex │ │ │ ├── enrollment_browser │ │ │ │ ├── enrollment_picker.ex │ │ │ │ ├── select_user_modal.ex │ │ │ │ └── table_model.ex │ │ │ ├── filter.ex │ │ │ ├── filter_box.ex │ │ │ ├── form_container.ex │ │ │ ├── hierarchy │ │ │ │ ├── hierarchy_picker.ex │ │ │ │ ├── hierarchy_picker_table_model.ex │ │ │ │ ├── move_modal.ex │ │ │ │ └── select_resource_modal.ex │ │ │ ├── listing.ex │ │ │ ├── minimal_modal.ex │ │ │ ├── modal.ex │ │ │ ├── modal │ │ │ │ ├── delete_modal.ex │ │ │ │ └── form_modal.ex │ │ │ ├── monaco_editor.ex │ │ │ ├── multi_select.ex │ │ │ ├── multi_select_options.ex │ │ │ ├── paged_table.ex │ │ │ ├── paging.ex │ │ │ ├── paging_params.ex │ │ │ ├── properties │ │ │ │ ├── group.ex │ │ │ │ ├── groups.ex │ │ │ │ ├── read_only.ex │ │ │ │ ├── utils.ex │ │ │ │ └── wide_group.ex │ │ │ ├── search_input.ex │ │ │ ├── show_section.ex │ │ │ ├── sortable_table │ │ │ │ ├── striped_table.ex │ │ │ │ ├── table.ex │ │ │ │ └── table_handlers.ex │ │ │ ├── stepper │ │ │ │ ├── step.ex │ │ │ │ └── stepper.ex │ │ │ ├── table │ │ │ │ ├── column_spec.ex │ │ │ │ ├── common.ex │ │ │ │ ├── instructor_dashboard_paged_table.ex │ │ │ │ ├── sortable_table.ex │ │ │ │ ├── sortable_table_model.ex │ │ │ │ └── striped_paged_table.ex │ │ │ ├── text_search.ex │ │ │ └── utils.ex │ │ ├── community_live │ │ │ ├── associated │ │ │ │ ├── index_view.ex │ │ │ │ ├── new_view.ex │ │ │ │ └── table_model.ex │ │ │ ├── form.ex │ │ │ ├── index_view.ex │ │ │ ├── invitation.ex │ │ │ ├── members_index_view.ex │ │ │ ├── members_table_model.ex │ │ │ ├── new_view.ex │ │ │ ├── select_member_modal.ex │ │ │ ├── show_view.ex │ │ │ └── table_model.ex │ │ ├── components │ │ │ └── tags │ │ │ │ └── tags_component.ex │ │ ├── curriculum │ │ │ ├── activity_delta.ex │ │ │ ├── container │ │ │ │ ├── container_live.ex │ │ │ │ ├── container_live.html.heex │ │ │ │ └── container_live_helpers.ex │ │ │ ├── drop_target.ex │ │ │ ├── entries │ │ │ │ ├── actions.ex │ │ │ │ ├── delete_modal.ex │ │ │ │ ├── details.ex │ │ │ │ ├── entry.ex │ │ │ │ ├── hyperlink_dependency_modal.ex │ │ │ │ ├── learning_summary.ex │ │ │ │ ├── not_empty_modal.ex │ │ │ │ ├── options_modal.ex │ │ │ │ └── utils.ex │ │ │ └── rollup.ex │ │ ├── delivery │ │ │ ├── instructor_dashboard │ │ │ │ ├── helpers.ex │ │ │ │ ├── html_components.ex │ │ │ │ ├── initial_assigns.ex │ │ │ │ ├── instructor_dashboard_live.ex │ │ │ │ └── learning_objectives │ │ │ │ │ └── related_activities_live.ex │ │ │ ├── manage_source_materials.ex │ │ │ ├── manage_source_materials │ │ │ │ ├── apply_update_modal.ex │ │ │ │ ├── project_card.ex │ │ │ │ └── project_info.ex │ │ │ ├── publications_table_model.ex │ │ │ ├── remix │ │ │ │ ├── actions.ex │ │ │ │ ├── add_materials_modal.ex │ │ │ │ ├── drop_target.ex │ │ │ │ ├── entry.ex │ │ │ │ ├── hide_resource_modal.ex │ │ │ │ └── remove_modal.ex │ │ │ ├── remix_section.ex │ │ │ ├── remix_section.html.heex │ │ │ ├── student │ │ │ │ ├── assignments_live.ex │ │ │ │ ├── certificate_live.ex │ │ │ │ ├── discussions_live.ex │ │ │ │ ├── explorations_live.ex │ │ │ │ ├── home │ │ │ │ │ └── components │ │ │ │ │ │ └── schedule_component.ex │ │ │ │ ├── index_live.ex │ │ │ │ ├── learn │ │ │ │ │ └── components │ │ │ │ │ │ └── view_selector.ex │ │ │ │ ├── learn_live.ex │ │ │ │ ├── lesson │ │ │ │ │ ├── annotations.ex │ │ │ │ │ └── components │ │ │ │ │ │ ├── one_at_a_time_question.ex │ │ │ │ │ │ └── outline_component.ex │ │ │ │ ├── lesson_live.ex │ │ │ │ ├── practice_live.ex │ │ │ │ ├── prologue_live.ex │ │ │ │ ├── review_live.ex │ │ │ │ ├── schedule_live.ex │ │ │ │ └── utils.ex │ │ │ ├── student_dashboard │ │ │ │ ├── components │ │ │ │ │ ├── content_tab.ex │ │ │ │ │ ├── helpers.ex │ │ │ │ │ ├── learning_objectives_tab.ex │ │ │ │ │ ├── progress_tab.ex │ │ │ │ │ └── quizz_scores_tab.ex │ │ │ │ ├── course_content_live.ex │ │ │ │ ├── initial_assigns.ex │ │ │ │ └── student_dashboard_live.ex │ │ │ └── student_onboarding │ │ │ │ ├── explorations.ex │ │ │ │ ├── intro.ex │ │ │ │ ├── survey.ex │ │ │ │ └── wizard.ex │ │ ├── dev │ │ │ ├── icons_live.ex │ │ │ ├── metrics_smoke_live.ex │ │ │ └── tokens_live.ex │ │ ├── dialogue │ │ │ ├── student_functions.ex │ │ │ ├── user_input.ex │ │ │ └── window_live.ex │ │ ├── experiments │ │ │ └── experiments_live.ex │ │ ├── features │ │ │ ├── enabled_scoped_features_table_model.ex │ │ │ └── features_live.ex │ │ ├── gen_ai │ │ │ ├── feature_configs_view.ex │ │ │ ├── registered_models_view.ex │ │ │ └── service_configs_view.ex │ │ ├── grades │ │ │ ├── browse_updates_view.ex │ │ │ ├── export.ex │ │ │ ├── failed_grade_sync.ex │ │ │ ├── failed_grade_sync_table_model.ex │ │ │ ├── grade_sync.ex │ │ │ ├── gradebook_table_model.ex │ │ │ ├── gradebook_view.ex │ │ │ ├── grades.ex │ │ │ ├── line_items.ex │ │ │ ├── observe_grade_updates.ex │ │ │ ├── observe_table_model.ex │ │ │ ├── test_connection.ex │ │ │ └── updates_table_model.ex │ │ ├── history │ │ │ ├── details.ex │ │ │ ├── graph.ex │ │ │ ├── pagination.ex │ │ │ ├── pagination_link.ex │ │ │ ├── reingold_tifford.ex │ │ │ ├── restore_revision_modal.ex │ │ │ ├── revision_history.ex │ │ │ ├── revision_history.html.heex │ │ │ └── table.ex │ │ ├── import │ │ │ └── csv_import_view.ex │ │ ├── ingest │ │ │ ├── errors_table_model.ex │ │ │ └── ingestv2.ex │ │ ├── insights │ │ │ ├── activity_table_model.ex │ │ │ ├── common.ex │ │ │ ├── insights.ex │ │ │ ├── objective_table_model.ex │ │ │ └── page_table_model.ex │ │ ├── link_account_live.ex │ │ ├── lms_user_instructions_live.ex │ │ ├── manual_grading │ │ │ ├── apply.ex │ │ │ ├── filter_button.ex │ │ │ ├── filters.ex │ │ │ ├── group.ex │ │ │ ├── manual_grading_view.ex │ │ │ ├── part_scoring.ex │ │ │ ├── rendered_activity.ex │ │ │ ├── rendering.ex │ │ │ ├── score_feedback.ex │ │ │ ├── table_model.ex │ │ │ └── tabs.ex │ │ ├── new_course │ │ │ ├── course_details.ex │ │ │ ├── name_course.ex │ │ │ ├── new_course.ex │ │ │ ├── select_source.ex │ │ │ └── table_model.ex │ │ ├── objectives │ │ │ ├── actions.ex │ │ │ ├── attachments.ex │ │ │ ├── delete_modal.ex │ │ │ ├── form_modal.ex │ │ │ ├── listing.ex │ │ │ ├── objectives.ex │ │ │ ├── select_existing_sub_modal.ex │ │ │ ├── selections.ex │ │ │ └── table_model.ex │ │ ├── products │ │ │ ├── create.ex │ │ │ ├── details │ │ │ │ ├── actions.ex │ │ │ │ ├── content.ex │ │ │ │ ├── edit.ex │ │ │ │ └── image_upload.ex │ │ │ ├── details_view.ex │ │ │ ├── payments │ │ │ │ ├── create_codes.ex │ │ │ │ ├── discounts │ │ │ │ │ ├── form.ex │ │ │ │ │ ├── products_index_view.ex │ │ │ │ │ ├── show_view.ex │ │ │ │ │ └── table_model.ex │ │ │ │ └── table_model.ex │ │ │ ├── payments_view.ex │ │ │ ├── products_table_model.ex │ │ │ ├── products_to_transfer_codes.ex │ │ │ └── products_view.ex │ │ ├── progress │ │ │ ├── attempt_history.ex │ │ │ ├── page_attempt_summary.ex │ │ │ ├── passback.ex │ │ │ ├── resource_title.ex │ │ │ ├── student_resource_view.ex │ │ │ ├── student_table_model.ex │ │ │ └── student_view.ex │ │ ├── projects │ │ │ ├── active_sections_table_model.ex │ │ │ ├── create_project_modal.ex │ │ │ ├── customization.ex │ │ │ ├── lms_url_to_copy.ex │ │ │ ├── lti_connect_instructions.ex │ │ │ ├── mcp_token_manager.ex │ │ │ ├── projects_live.ex │ │ │ ├── publication_details.ex │ │ │ ├── publish_changes_table_model.ex │ │ │ ├── publish_view.ex │ │ │ ├── required_survey.ex │ │ │ ├── table_model.ex │ │ │ ├── transfer_payment_codes.ex │ │ │ ├── versioning_details.ex │ │ │ └── visibility.ex │ │ ├── publisher_live │ │ │ ├── form.ex │ │ │ ├── index_view.ex │ │ │ ├── new_view.ex │ │ │ ├── show_view.ex │ │ │ └── table_model.ex │ │ ├── qa │ │ │ ├── qa_live.ex │ │ │ ├── state.ex │ │ │ ├── utils.ex │ │ │ ├── warning_details.ex │ │ │ ├── warning_filter.ex │ │ │ └── warning_summary.ex │ │ ├── resources │ │ │ ├── activities_table_model.ex │ │ │ ├── activities_view.ex │ │ │ ├── alternatives_editor.ex │ │ │ ├── alternatives_editor │ │ │ │ ├── group_option.ex │ │ │ │ └── prevent_deletion_modal.ex │ │ │ ├── pages_table_model.ex │ │ │ └── pages_view.ex │ │ ├── search │ │ │ └── embeddings_live.ex │ │ ├── sections │ │ │ ├── assessment_settings │ │ │ │ ├── settings_live.ex │ │ │ │ ├── settings_table.ex │ │ │ │ ├── settings_table_model.ex │ │ │ │ ├── student_exceptions_live.ex │ │ │ │ ├── student_exceptions_table.ex │ │ │ │ ├── student_exceptions_table_model.ex │ │ │ │ └── tooltips.ex │ │ │ ├── assistant │ │ │ │ ├── student_conversations.ex │ │ │ │ └── student_conversations_table_model.ex │ │ │ ├── content_settings.ex │ │ │ ├── details │ │ │ │ └── image_upload.ex │ │ │ ├── edit_view.ex │ │ │ ├── enrollments │ │ │ │ └── invalid_section_invite_view.ex │ │ │ ├── enrollments_table_model.ex │ │ │ ├── gating_and_scheduling.ex │ │ │ ├── gating_and_scheduling │ │ │ │ ├── edit.ex │ │ │ │ ├── form.ex │ │ │ │ ├── gating_condition_store.ex │ │ │ │ ├── new.ex │ │ │ │ └── table_model.ex │ │ │ ├── instructors.ex │ │ │ ├── invite │ │ │ │ └── invitation.ex │ │ │ ├── invite_view.ex │ │ │ ├── lti_external_tools.ex │ │ │ ├── lti_settings.ex │ │ │ ├── main_details.ex │ │ │ ├── mount.ex │ │ │ ├── open_free_settings.ex │ │ │ ├── overview_view.ex │ │ │ ├── payment_end.ex │ │ │ ├── paywall_settings.ex │ │ │ ├── schedule_view.ex │ │ │ ├── sections_view.ex │ │ │ ├── start_end.ex │ │ │ └── table_model.ex │ │ ├── system_message_live │ │ │ ├── edit_message.ex │ │ │ ├── index_view.ex │ │ │ └── show_view.ex │ │ ├── tagged_tuple_helper.ex │ │ ├── user_confirmation_instructions_live.ex │ │ ├── user_confirmation_live.ex │ │ ├── user_forgot_password_live.ex │ │ ├── user_login_live.ex │ │ ├── user_registration_live.ex │ │ ├── user_reset_password_live.ex │ │ ├── user_settings_live.ex │ │ ├── users │ │ │ ├── author_detail_view.ex │ │ │ ├── author_projects.ex │ │ │ ├── author_projects_table_model.ex │ │ │ ├── authors_table_model.ex │ │ │ ├── authors_view.ex │ │ │ ├── common.ex │ │ │ ├── invitations │ │ │ │ └── users_invite_view.ex │ │ │ ├── modals │ │ │ │ ├── confirm_email_modal.ex │ │ │ │ ├── delete_account_modal.ex │ │ │ │ ├── lock_account_modal.ex │ │ │ │ └── unlock_account_modal.ex │ │ │ ├── user_actions.ex │ │ │ ├── user_detail_view.ex │ │ │ ├── user_enrolled_sections.ex │ │ │ ├── user_enrolled_table_model.ex │ │ │ ├── users_table_model.ex │ │ │ └── users_view.ex │ │ └── workspaces │ │ │ ├── course_author │ │ │ ├── activities │ │ │ │ ├── activities_table_model.ex │ │ │ │ └── activity_review_live.ex │ │ │ ├── activities_live.ex │ │ │ ├── activity_bank_live.ex │ │ │ ├── add_activities_and_tools_modal.ex │ │ │ ├── alternatives_live.ex │ │ │ ├── bibliography_live.ex │ │ │ ├── create_job_live.ex │ │ │ ├── curriculum │ │ │ │ └── entry.ex │ │ │ ├── curriculum_live.ex │ │ │ ├── curriculum_live.html.heex │ │ │ ├── dataset_details_live.ex │ │ │ ├── datasets │ │ │ │ ├── common.ex │ │ │ │ ├── creation_table_model.ex │ │ │ │ ├── datasets_table_model.ex │ │ │ │ └── job_shortcuts.ex │ │ │ ├── datasets_live.ex │ │ │ ├── editor_live.ex │ │ │ ├── experiments_live.ex │ │ │ ├── history_live.ex │ │ │ ├── index_csv_live.ex │ │ │ ├── index_live.ex │ │ │ ├── insights │ │ │ │ ├── activity_table_model.ex │ │ │ │ ├── common.ex │ │ │ │ ├── objective_table_model.ex │ │ │ │ └── page_table_model.ex │ │ │ ├── insights_live.ex │ │ │ ├── objectives │ │ │ │ ├── actions.ex │ │ │ │ ├── attachments.ex │ │ │ │ ├── delete_modal.ex │ │ │ │ ├── form_modal.ex │ │ │ │ ├── listing.ex │ │ │ │ ├── select_existing_sub_modal.ex │ │ │ │ ├── selections.ex │ │ │ │ └── table_model.ex │ │ │ ├── objectives_live.ex │ │ │ ├── overview_live.ex │ │ │ ├── overview_table_model.ex │ │ │ ├── pages │ │ │ │ └── table_model.ex │ │ │ ├── pages_live.ex │ │ │ ├── products │ │ │ │ └── details_live.ex │ │ │ ├── products_live.ex │ │ │ ├── publish │ │ │ │ ├── active_sections_table_model.ex │ │ │ │ ├── lms_url_to_copy.ex │ │ │ │ ├── lti_connect_instructions.ex │ │ │ │ └── versioning_details.ex │ │ │ ├── publish_live.ex │ │ │ ├── qa │ │ │ │ ├── state.ex │ │ │ │ ├── utils.ex │ │ │ │ ├── warning_details.ex │ │ │ │ ├── warning_filter.ex │ │ │ │ └── warning_summary.ex │ │ │ └── review_live.ex │ │ │ ├── instructor │ │ │ ├── dashboard_live.ex │ │ │ └── index_live.ex │ │ │ ├── student.ex │ │ │ ├── sub_menu_item.ex │ │ │ └── utils.ex │ ├── live_session_plugs │ │ ├── assign_active_menu.ex │ │ ├── authorize_project.ex │ │ ├── init_page.ex │ │ ├── require_enrollment.ex │ │ ├── set_annotations.ex │ │ ├── set_brand.ex │ │ ├── set_ctx.ex │ │ ├── set_notification_badges.ex │ │ ├── set_paywall_summary.ex │ │ ├── set_preview_mode.ex │ │ ├── set_project.ex │ │ ├── set_project_or_section.ex │ │ ├── set_request_path.ex │ │ ├── set_require_certification_check.ex │ │ ├── set_route_name.ex │ │ ├── set_scheduled_resources_flag.ex │ │ ├── set_section.ex │ │ ├── set_sidebar.ex │ │ ├── set_token.ex │ │ └── set_uri.ex │ ├── plugs │ │ ├── allow_iframe_csp.ex │ │ ├── authorize_community.ex │ │ ├── authorize_project.ex │ │ ├── authorize_section.ex │ │ ├── authorize_section_preview.ex │ │ ├── community_admin.ex │ │ ├── delivery_preview.ex │ │ ├── enforce_paywall.ex │ │ ├── ensure_datashop_id.ex │ │ ├── ensure_research_consent.ex │ │ ├── ensure_user_section_visit.ex │ │ ├── force_required_survey.ex │ │ ├── header_size_logger.ex │ │ ├── layout_based_on_user.ex │ │ ├── load_testing_bypass.ex │ │ ├── lti_ags_token_validator.ex │ │ ├── maybe_gated_resource.ex │ │ ├── maybe_skip_email_verification.ex │ │ ├── no_cache.ex │ │ ├── redirect.ex │ │ ├── redirect_by_attempt_state.ex │ │ ├── redirect_lti_user_to_section.ex │ │ ├── remove_xframe_options.ex │ │ ├── require_enrollment.ex │ │ ├── require_independent_instructor.ex │ │ ├── require_section.ex │ │ ├── restrict_admin_access.ex │ │ ├── restrict_lms_user_access.ex │ │ ├── session_context.ex │ │ ├── set_token.ex │ │ ├── set_user_type.ex │ │ ├── set_vr_agent_value.ex │ │ ├── ssl.ex │ │ ├── validate_api_key.ex │ │ ├── validate_id_token.ex │ │ └── validate_product_api_key.ex │ ├── presence.ex │ ├── router.ex │ ├── telemetry.ex │ ├── templates │ │ ├── activity_bank │ │ │ ├── index.html.eex │ │ │ ├── paging.html.eex │ │ │ └── preview.html.heex │ │ ├── activity_manage │ │ │ └── index.html.eex │ │ ├── activity_review │ │ │ └── index.html.eex │ │ ├── bibliography │ │ │ ├── _references.html.eex │ │ │ └── index.html.eex │ │ ├── brand │ │ │ ├── edit.html.eex │ │ │ ├── form.html.eex │ │ │ ├── index.html.eex │ │ │ ├── new.html.eex │ │ │ └── show.html.eex │ │ ├── certificate │ │ │ ├── index.html.heex │ │ │ └── show.html.heex │ │ ├── cognito │ │ │ ├── clone_prompt.html.eex │ │ │ └── create_prompt.html.eex │ │ ├── delivery │ │ │ ├── course_not_configured.html.eex │ │ │ ├── enroll.html.heex │ │ │ ├── gated_resource_unavailable.html.eex │ │ │ ├── getting_started.html.eex │ │ │ ├── lms_signin_required.html.eex │ │ │ ├── research_consent.html.heex │ │ │ ├── section_not_found.html.eex │ │ │ └── section_unavailable.html.eex │ │ ├── deployment │ │ │ ├── edit.html.eex │ │ │ ├── form.html.eex │ │ │ └── new.html.eex │ │ ├── dev │ │ │ └── flame_graphs.html.eex │ │ ├── email │ │ │ ├── _footer.html.eex │ │ │ ├── _header.html.eex │ │ │ ├── _learnmore_oli.html.eex │ │ │ ├── account_already_exists.html.eex │ │ │ ├── account_already_exists.text.eex │ │ │ ├── author_invitation.html.eex │ │ │ ├── author_invitation.text.eex │ │ │ ├── certificate_approval.html.eex │ │ │ ├── certificate_approval.text.eex │ │ │ ├── certificate_denial.html.eex │ │ │ ├── certificate_denial.text.eex │ │ │ ├── certificate_instructor_pending_approval.html.eex │ │ │ ├── certificate_instructor_pending_approval.text.eex │ │ │ ├── collaborator_invitation.html.eex │ │ │ ├── collaborator_invitation.text.eex │ │ │ ├── dataset.html.eex │ │ │ ├── dataset.text.eex │ │ │ ├── email_confirmation.html.eex │ │ │ ├── email_confirmation.text.eex │ │ │ ├── enrollment_invitation.html.eex │ │ │ ├── enrollment_invitation.text.eex │ │ │ ├── help_email.html.eex │ │ │ ├── help_email.text.eex │ │ │ ├── instructor_student_email.html.eex │ │ │ ├── registration_approved.html.eex │ │ │ ├── reset_password.html.eex │ │ │ └── reset_password.text.eex │ │ ├── error │ │ │ ├── 404.html.heex │ │ │ ├── 500.html.heex │ │ │ └── http_status.html.heex │ │ ├── ingest │ │ │ ├── error.html.eex │ │ │ ├── index.html.eex │ │ │ └── index_csv.html.eex │ │ ├── institution │ │ │ ├── edit.html.eex │ │ │ ├── form.html.eex │ │ │ ├── new.html.eex │ │ │ └── show.html.eex │ │ ├── invite │ │ │ └── index.html.eex │ │ ├── layout │ │ │ ├── _admin_sidebar.html.eex │ │ │ ├── _community_admin_sidebar.html.eex │ │ │ ├── _delivery_header.html.heex │ │ │ ├── _pay_early.html.eex │ │ │ ├── _project_sidebar.html.eex │ │ │ ├── _workspace_header.html.heex │ │ │ ├── _workspace_sidebar.html.eex │ │ │ ├── app.html.eex │ │ │ ├── authoring.html.heex │ │ │ ├── chromeless.html.heex │ │ │ ├── default.html.heex │ │ │ ├── delivery.html.heex │ │ │ ├── delivery_from_payment.html.heex │ │ │ ├── delivery_student_dashboard.html.heex │ │ │ ├── email.html.eex │ │ │ ├── email.text.eex │ │ │ ├── error.html.heex │ │ │ ├── help_email.html.eex │ │ │ ├── help_email.text.eex │ │ │ ├── live.html.heex │ │ │ ├── live_no_flash.html.heex │ │ │ ├── lti.html.heex │ │ │ └── workspace.html.heex │ │ ├── lti │ │ │ ├── lti_error.html.heex │ │ │ ├── lti_test.html.eex │ │ │ ├── post_redirect.html.eex │ │ │ ├── register.html.eex │ │ │ └── registration_pending.html.heex │ │ ├── open_and_free │ │ │ ├── edit.html.eex │ │ │ ├── form.html.eex │ │ │ ├── index.html.eex │ │ │ ├── new.html.eex │ │ │ └── show.html.eex │ │ ├── page_delivery │ │ │ ├── _previous_next_nav.html.heex │ │ │ ├── advanced_delivery.html.eex │ │ │ ├── after_finalized.html.eex │ │ │ ├── container.html.heex │ │ │ ├── error.html.eex │ │ │ ├── instructor_page_preview.html.heex │ │ │ ├── not_authorized.html.eex │ │ │ ├── page.html.heex │ │ │ ├── prologue.html.eex │ │ │ └── updates.html.eex │ │ ├── payment │ │ │ ├── code.html.heex │ │ │ ├── code_success.html.eex │ │ │ ├── guard.html.heex │ │ │ ├── new.html.eex │ │ │ ├── not_enrolled.html.eex │ │ │ └── require_account.html.eex │ │ ├── payment_providers │ │ │ ├── cashnet │ │ │ │ ├── index.html.heex │ │ │ │ └── lms_from_payment_site.html.heex │ │ │ ├── no_provider │ │ │ │ └── index.html.heex │ │ │ └── stripe │ │ │ │ └── index.html.heex │ │ ├── registration │ │ │ ├── edit.html.eex │ │ │ ├── form.html.eex │ │ │ ├── new.html.eex │ │ │ └── show.html.eex │ │ ├── resource │ │ │ ├── _preview_previous_next_nav.html.eex │ │ │ ├── advanced.html.eex │ │ │ ├── advanced_page_preview.html.eex │ │ │ ├── edit.html.eex │ │ │ └── page_preview.html.heex │ │ ├── section_schedule │ │ │ └── schedule.html.eex │ │ ├── shared │ │ │ ├── _add_button.html.eex │ │ │ ├── _admin_edit_banner.html.eex │ │ │ ├── _blank.html.eex │ │ │ ├── _box_form_container.html.eex │ │ │ ├── _button_primary.html.eex │ │ │ ├── _input.html.eex │ │ │ ├── _list.html.eex │ │ │ ├── _not_found.html.eex │ │ │ ├── _project_options_menu.html.eex │ │ │ ├── _section_header.html.eex │ │ │ ├── _signup_modal.html.eex │ │ │ └── _textarea.html.eex │ │ └── static_page │ │ │ ├── index.html.heex │ │ │ ├── index_logged_in.html.heex │ │ │ ├── not_found.html.eex │ │ │ └── unauthorized.html.eex │ ├── user_auth.ex │ └── views │ │ ├── activity_bank_view.ex │ │ ├── activity_manage_view.ex │ │ ├── activity_review_view.ex │ │ ├── api │ │ ├── health_view.ex │ │ ├── product_view.ex │ │ ├── publisher_view.ex │ │ └── rules_engine_view.ex │ │ ├── authoring_view.ex │ │ ├── bibliography_view.ex │ │ ├── brand_view.ex │ │ ├── certificate_view.ex │ │ ├── changeset_view.ex │ │ ├── cognito_view.ex │ │ ├── delivery_view.ex │ │ ├── deployment_view.ex │ │ ├── dev │ │ └── dev_view.ex │ │ ├── editor_test_view.ex │ │ ├── email_view.ex │ │ ├── error_helpers.ex │ │ ├── error_view.ex │ │ ├── help_view.ex │ │ ├── ingest_view.ex │ │ ├── institution_view.ex │ │ ├── invite_view.ex │ │ ├── layout_view.ex │ │ ├── legacy_support_view.ex │ │ ├── lti_view.ex │ │ ├── media_view.ex │ │ ├── open_and_free_view.ex │ │ ├── page_delivery_view.ex │ │ ├── payment_providers │ │ ├── cashnet_view.ex │ │ ├── no_provider_view.ex │ │ └── stripe_view.ex │ │ ├── payment_view.ex │ │ ├── project_view.ex │ │ ├── registration_view.ex │ │ ├── resource_view.ex │ │ ├── section_schedule_view.ex │ │ ├── shared_view.ex │ │ ├── static_page_view.ex │ │ ├── view_helpers.ex │ │ └── workspace_view.ex └── postgrex_types.ex ├── mix.exs ├── mix.lock ├── oli.example.env ├── pgadmin.servers.json ├── postgres.example.env ├── priv ├── data │ ├── oli_logo.png │ ├── oli_logo_dark.png │ └── world_universities_and_domains.json ├── gettext │ ├── default.pot │ ├── en │ │ └── LC_MESSAGES │ │ │ ├── default.po │ │ │ ├── errors.po │ │ │ └── grades.po │ ├── errors.pot │ └── grades.pot ├── repo │ ├── migrations │ │ ├── .formatter.exs │ │ ├── 20200310193550_init_core_schemas.exs │ │ ├── 20200710120811_adjust_string_lengths.exs │ │ ├── 20200824135207_add_lti_1p3_support.exs │ │ ├── 20201020142621_pow.exs │ │ ├── 20201117133952_add_pow_invitation_to_authors.exs │ │ ├── 20201210154211_remove_registration_kid.exs │ │ ├── 20201211141735_improve_lti_workflow.exs │ │ ├── 20210113153906_eliminate_user_inst_fkey.exs │ │ ├── 20210113211306_create_lti_1p3_platforms.exs │ │ ├── 20210128145315_create_project_visibilities.exs │ │ ├── 20210129130212_primary.exs │ │ ├── 20210202145904_lti_1p3_lib.exs │ │ ├── 20210219174527_add_section_slug.exs │ │ ├── 20210303221557_allow_client_evaluation.exs │ │ ├── 20210305232658_generate_section_slugs.exs │ │ ├── 20210312181346_mark_activity_global_status.exs │ │ ├── 20210312220005_create_activity_registrations_projects.exs │ │ ├── 20210325175834_slug_alphanumeric_only.exs │ │ ├── 20210331174347_user_research_consent.exs │ │ ├── 20210331211844_open_and_free.exs │ │ ├── 20210408004534_add_features_table.exs │ │ ├── 20210408234517_user_state.exs │ │ ├── 20210412213517_user_guest_flag.exs │ │ ├── 20210415104141_add_resource_attempt_state.exs │ │ ├── 20210420175605_section_status.exs │ │ ├── 20210421162709_create_part_component_registrations.exs │ │ ├── 20210423011451_add_indices.exs │ │ ├── 20210423231612_create_brands.exs │ │ ├── 20210425223029_create_consent_cookies.exs │ │ ├── 20210428002432_add_package_status.exs │ │ ├── 20210506203507_fix_project_status.exs │ │ ├── 20210517121613_add_oban_jobs_table.exs │ │ ├── 20210603205146_pow_delivery_user.exs │ │ ├── 20210614145546_removeJanusCarouselPartRegistrations.exs │ │ ├── 20210628111111_oli_adaptive_allow_client_evaluations.exs │ │ ├── 20210708135510_add_scope_attribute.exs │ │ ├── 20210709161013_change_scope.exs │ │ ├── 20210804173741_generate_sub.exs │ │ ├── 20210804999992_refresh_part_components.exs │ │ ├── 20210809142945_lock_users.exs │ │ ├── 20210820154100_publish_version_description.exs │ │ ├── 20210823212647_advanced_section_creation.exs │ │ ├── 20210826141230_add_page_transformation_fields.exs │ │ ├── 20210830130925_add_tags.exs │ │ ├── 20210902185726_delete_authors_users.exs │ │ ├── 20210920141633_add_money_with_currency_type_to_postgres.exs │ │ ├── 20210920141807_add_paywall_infra.exs │ │ ├── 20211001235325_add_provider_fields.exs │ │ ├── 20211006185308_remix_materials.exs │ │ ├── 20211007132806_add_custom_activity_save_file_table.exs │ │ ├── 20211018195413_create_communities.exs │ │ ├── 20211103123520_create_gating_conditions.exs │ │ ├── 20211104161120_resource_gating_index.exs │ │ ├── 20211105165216_create_communities_accounts.exs │ │ ├── 20211108214150_update_users_table_can_create_sections.exs │ │ ├── 20211111003243_add_section_link_map.exs │ │ ├── 20211111095626_update_sections_table_requires_enrollment.exs │ │ ├── 20211115144220_create_communities_visibilities.exs │ │ ├── 20211116151722_nilify_published_resource_author.exs │ │ ├── 20211117160940_add_scoreable.exs │ │ ├── 20211129222814_create_section_invites_table.exs │ │ ├── 20211202142939_create_communities_institutions.exs │ │ ├── 20211208181055_deployment_institution.exs │ │ ├── 20211214170715_create_custom_activity_logs.exs │ │ ├── 20220103170728_grade_update.exs │ │ ├── 20220110165728_refactor_lti_params.exs │ │ ├── 20220113173021_cognito_sso_jwks_store.exs │ │ ├── 20220119121119_optimization_infra.exs │ │ ├── 20220126134039_create_system_messages.exs │ │ ├── 20220214143811_update_users_tables_age_verified.exs │ │ ├── 20220216163315_add_on_delete_to_section_associations.exs │ │ ├── 20220221134815_logic_based_gating.exs │ │ ├── 20220304165032_reset_prev_next_for_containers.exs │ │ ├── 20220306185035_gating_grading_policy.exs │ │ ├── 20220308142458_attempt_states.exs │ │ ├── 20220317164007_fix_previous_migration.exs │ │ ├── 20220328192150_allow_projects_duplication.exs │ │ ├── 20220331182821_update_sections_table_skip_email_verification.exs │ │ ├── 20220408161431_create_publishers.exs │ │ ├── 20220418150726_add_publisher_to_projects_and_products.exs │ │ ├── 20220419163826_registration_scope.exs │ │ ├── 20220422144507_add_sections_search_indexes.exs │ │ ├── 20220429123205_add_default_to_publishers.exs │ │ ├── 20220429162506_update_sections_table_pay_by_institution.exs │ │ ├── 20220504163501_update_sections_add_display_curriculum_item_numbering.exs │ │ ├── 20220505114827_automation_setup_scope.exs │ │ ├── 20220506133919_update_discounts_table_unique_index.exs │ │ ├── 20220512182638_add_section_resources_slug_index.exs │ │ ├── 20220517211648_delete_inst_reg_depl.exs │ │ ├── 20220518191503_cascade_delete_published_resource.exs │ │ ├── 20220524233403_update_sections_add_cover_image.exs │ │ ├── 20220615133201_add_global_visibility.exs │ │ ├── 20220615201219_remove_part_mapping_refresh_trigger.exs │ │ ├── 20220616184621_add_project_to_snapshots.exs │ │ ├── 20220617134522_remove_timezone_from_sections.exs │ │ ├── 20220617195405_add_petite_label.exs │ │ ├── 20220624180508_attempt_group_survey_ids.exs │ │ ├── 20220627135700_add_reserach_consent_to_institutions.exs │ │ ├── 20220629134948_update_snapshots_add_project_ids.exs │ │ ├── 20220629171258_add_preferences_to_users.exs │ │ ├── 20220711162647_add_available_via_api_flag_to_publishers.exs │ │ ├── 20220712214321_datashop_session_id.exs │ │ ├── 20220722020459_enable_remove_institution.exs │ │ ├── 20220726180208_add_line_items_domain_to_registration.exs │ │ ├── 20220802161855_retake_mode.exs │ │ ├── 20220824181333_explanation_strategy.exs │ │ ├── 20220825105222_add_parameters.exs │ │ ├── 20220829172419_fix_part_mapping_refresh.exs │ │ ├── 20220908230738_add_legacy_meta_data.exs │ │ ├── 20220913002052_optimized_ingest.exs │ │ ├── 20220920205152_delete_publications_trigger.exs │ │ ├── 20220921174148_really_delete_trigger.exs │ │ ├── 20220927180546_add_project_attributes.exs │ │ ├── 20221010190139_update_project_section_add_customization.exs │ │ ├── 20221020142919_add_blueprint_table.exs │ │ ├── 20221031135344_add_collaborative_spaces.exs │ │ ├── 20221101195230_add_posts_table.exs │ │ ├── 20221103162115_add_delivery_settings.exs │ │ ├── 20221103202020_feature_flags.exs │ │ ├── 20221109230029_fix_duplicate_active_publications.exs │ │ ├── 20221209215448_revision_parts_table.exs │ │ ├── 20230112022932_update_theorem_icon.exs │ │ ├── 20230125131506_update_revisions_add_purpose.exs │ │ ├── 20230130191305_soft_scheduling.exs │ │ ├── 20230208185959_contained_pages.exs │ │ ├── 20230227183202_add_anonymous_field_to_posts_table.exs │ │ ├── 20230302142539_has_experiments.exs │ │ ├── 20230302190535_contains_explorations.exs │ │ ├── 20230321155325_add_project_required_survey.exs │ │ ├── 20230424160429_add_survey_fields_for_sections.exs │ │ ├── 20230425142146_add_on_delete_to_contained_pages.exs │ │ ├── 20230504145349_optional_content_types.exs │ │ ├── 20230511163714_assessment_settings.exs │ │ ├── 20230516230041_deadline_management.exs │ │ ├── 20230518010722_add_status_in_enrollment.exs │ │ ├── 20230519125406_payment_options.exs │ │ ├── 20230530172546_add_bypassed_by_field.exs │ │ ├── 20230712163553_rebuild_contained_pages.exs │ │ ├── 20230818170332_project_analytics_snapshot.exs │ │ ├── 20230823171229_summary_tables.exs │ │ ├── 20230904155403_add_start_date_to_delivery_settings.exs │ │ ├── 20230913183242_create_contained_objectives.exs │ │ ├── 20230913190657_add_v25_migration_to_sections.exs │ │ ├── 20230914120406_add_preferred_time_to_sections.exs │ │ ├── 20230915131050_add_blueprint_category.exs │ │ ├── 20230918214825_project_datashop_snapshot.exs │ │ ├── 20230920144534_response_as_text_type.exs │ │ ├── 20231009145928_add_most_recently_visited_resource_id_to_enrollments.exs │ │ ├── 20231010144119_add_prompt_templates.exs │ │ ├── 20231018113704_intro_attributes.exs │ │ ├── 20231023142303_add_apply_major_updates_to_sections.exs │ │ ├── 20231023180320_embeddings.exs │ │ ├── 20231027175818_add_hierarchy_data_to_sections_table.exs │ │ ├── 20231107183704_add_crockford_base32_encode_function.exs │ │ ├── 20231112194542_add_has_practice.exs │ │ ├── 20231113172334_section_resource_to_container_map.exs │ │ ├── 20231124160907_user_read_posts.exs │ │ ├── 20240105204616_remove_full_hierarchy.exs │ │ ├── 20240109143456_add_contains_discussions_column.exs │ │ ├── 20240111155541_create_assistant_conversation_messages.exs │ │ ├── 20240118214656_oban_12.exs │ │ ├── 20240125204755_fix_revision_parts.exs │ │ ├── 20240125210747_remove_resource_to_container_map.exs │ │ ├── 20240129151601_add_section_assistant_enable.exs │ │ ├── 20240129162557_add_cleanup_state.exs │ │ ├── 20240216211634_populate_system_roles.exs │ │ ├── 20240222133254_track_added_ids.exs │ │ ├── 20240301174907_add_post_annotated_resource_and_block_ids.exs │ │ ├── 20240306095920_create_vr_user_agents_table.exs │ │ ├── 20240321140533_activity_variables.exs │ │ ├── 20240328190716_user_reaction_posts.exs │ │ ├── 20240424184100_add_host_identifier_table.exs │ │ ├── 20240426181431_allow_transfer_payment_codes.exs │ │ ├── 20240503133916_disable_assistant_in_existing_sections.exs │ │ ├── 20240513230512_add_pending_uploads.exs │ │ ├── 20240520180813_add_report_to_activity_registration.exs │ │ ├── 20240520181203_enable_likert_activity_report.exs │ │ ├── 20240611141602_add_welcome_title_and_encouraging_subtitle_to_projects_and_sections.exs │ │ ├── 20240620202825_create_settings_changes.exs │ │ ├── 20240621171337_create_get_activity_references_function.exs │ │ ├── 20240624202150_revision_ids_added.exs │ │ ├── 20240708203428_drop_host_identifier_table.exs │ │ ├── 20240709205804_async_project_export.exs │ │ ├── 20240711170055_create_research_consent.exs │ │ ├── 20240716140728_add_auto_update_sections.exs │ │ ├── 20240716154202_add_hidden_field_to_section_resources.exs │ │ ├── 20240719181530_enrollments_context_roles_unique_index.exs │ │ ├── 20240723143705_assessment_mode.exs │ │ ├── 20240730205106_alter_analytics_version_default_value.exs │ │ ├── 20240731170918_add_agenda_flag_to_section.exs │ │ ├── 20240917111312_add_lifecycle_index.exs │ │ ├── 20240926121428_replicate_revision_fields.exs │ │ ├── 20241014182007_create_users_auth_tables.exs │ │ ├── 20241017190834_drop_users_sub_index.exs │ │ ├── 20241021182426_add_invalidated_by_user_id.exs │ │ ├── 20241023204930_drop_snapshots.exs │ │ ├── 20241203184246_create_certificates_tables.exs │ │ ├── 20241205155912_add_dataset_jobs.exs │ │ ├── 20241209175250_update_agenda_default_to_true.exs │ │ ├── 20241216193240_allow_hints_scored_pages.exs │ │ ├── 20241216193421_remove_invitation_token_from_users.exs │ │ ├── 20250102145526_add_status_in_authors_projects.exs │ │ ├── 20250104141507_add_institution_to_user.exs │ │ ├── 20250107175207_remove_invitation_token_from_authors.exs │ │ ├── 20250108052504_add_url_to_granted_certificates.exs │ │ ├── 20250113190620_add_full_progress_pct.exs │ │ ├── 20250123140951_alter_granted_certificated_issued_by_type_type.exs │ │ ├── 20250131002210_certificates_modify_logos_to_bytea.exs │ │ ├── 20250206144735_add_issuer_index.exs │ │ ├── 20250210165529_triggers_enabled.exs │ │ ├── 20250220214311_ad_email_sent_field_to_granted_certificates.exs │ │ ├── 20250226183617_drop_publication_scope.exs │ │ ├── 20250303192630_project_trigger_control.exs │ │ ├── 20250304193307_add_score_as_you_go.exs │ │ ├── 20250327185332_lti_platform_instance_deployment_id.exs │ │ ├── 20250401140659_ensure_user_sub.exs │ │ ├── 20250428165356_add_bypass_paywall_field_to_discounts.exs │ │ ├── 20250428195108_add_activity_refs_to_revisions.exs │ │ ├── 20250429164523_add_status_field_to_lti_external_tool_activity_deployments.exs │ │ ├── 20250504152925_add_hidden_user.exs │ │ ├── 20250604141727_add_removed_from_schedule_field_to_section_resouces.exs │ │ ├── 20250625153539_change_sr_datatypes.exs │ │ ├── 20250629193840_add_platform_instance_guid.exs │ │ ├── 20250703151227_add_unique_constraint_to_delivery_settings_table.exs │ │ ├── 20250708143138_add_knowledge_base_link_and_support_email_to_publishers.exs │ │ ├── 20250710161452_enable_lti_external_tool_deep_linking.exs │ │ ├── 20250716002304_add_platform_instance_status_field.exs │ │ ├── 20250716120001_add_status_to_activity_registration_projects.exs │ │ ├── 20250716121002_backfill_status_on_activity_registration_projects.exs │ │ ├── 20250716122003_set_status_not_null_and_default_on_activity_registration_projects.exs │ │ ├── 20250721171203_genai_infra.exs │ │ ├── 20250728180353_update_lti_platform_instance_client_id_index.exs │ │ ├── 20250811145546_updateCapiPartRegistrations.exs │ │ ├── 20250811220833_add_timezone_to_sections.exs │ │ ├── 20250817010014_create_agent_tables.exs │ │ ├── 20250817180132_create_mcp_bearer_tokens.exs │ │ ├── 20250818190158_create_mcp_bearer_token_usage.exs │ │ ├── 20250819181513_create_audit_log_events.exs │ │ ├── 20250828134109_create_scoped_feature_flag_states.exs │ │ ├── 20250828150521_remove_enabled_from_scoped_feature_flag_states.exs │ │ ├── 20250903144951_create_tags_table.exs │ │ ├── 20250903144952_create_project_tags_table.exs │ │ ├── 20250903144953_create_section_tags_table.exs │ │ ├── 20250911164428_change_users_picture_type_to_text.exs │ │ ├── 20250924163704_add_related_activities_to_section_resources.exs │ │ ├── 20250924163747_populate_related_activities_for_existing_section_resources.exs │ │ ├── 20251030120000_add_internal_flags_to_accounts.exs │ │ └── 20251030121000_create_scoped_feature_rollouts_and_exemptions.exs │ ├── seeds.exs │ └── test_snapshots.csv ├── schemas │ └── v0-1-0 │ │ ├── activity-bank-selection.schema.json │ │ ├── activity-content.schema.json │ │ ├── activity-reference.schema.json │ │ ├── activity-sequence.schema.json │ │ ├── activity.schema.json │ │ ├── adaptive-activity-content.schema.json │ │ ├── adaptive-activity.schema.json │ │ ├── audience.schema.json │ │ ├── content-alternatives.schema.json │ │ ├── content-block.schema.json │ │ ├── content-break.schema.json │ │ ├── content-element.schema.json │ │ ├── content-group.schema.json │ │ ├── content-survey.schema.json │ │ ├── elements.schema.json │ │ ├── page-content-adaptive.schema.json │ │ ├── page-content-basic.schema.json │ │ ├── page-content.schema.json │ │ ├── page.schema.json │ │ ├── purpose-type.schema.json │ │ ├── resource.schema.json │ │ └── selection.schema.json └── ssl │ ├── localhost.crt │ └── localhost.key ├── rel ├── env.bat.eex ├── env.sh.eex ├── overlays │ └── bin │ │ ├── migrate │ │ ├── migrate.bat │ │ ├── server │ │ └── server.bat ├── remote.vm.args.eex └── vm.args.eex ├── seeds.example.json ├── supervisord.conf ├── test.json ├── test ├── config │ ├── age_verification_config.exs │ ├── cashnet_config.exs │ ├── config.exs │ └── stripe_config.exs ├── lib │ └── oli_web │ │ └── admin │ │ └── browse_filters_test.exs ├── mix │ └── tasks │ │ └── create_contained_objectives_test.exs ├── oli │ ├── accounts │ │ ├── author_browse_test.exs │ │ ├── collaborator_test.exs │ │ └── user_browse_test.exs │ ├── accounts_test.exs │ ├── activities │ │ ├── activity_registration_project_test.exs │ │ ├── errors.json │ │ ├── parse_test.exs │ │ ├── parse_utils_test.exs │ │ ├── realizer │ │ │ ├── conditions_test.exs │ │ │ ├── invalid1.json │ │ │ ├── query_execution_test.exs │ │ │ ├── selection_test.exs │ │ │ ├── valid1.json │ │ │ ├── valid2.json │ │ │ └── valid3.json │ │ ├── transformers │ │ │ └── variable_substitution_test.exs │ │ ├── transformers_test.exs │ │ └── valid.json │ ├── activities_test.exs │ ├── analytics │ │ ├── datasets │ │ │ └── utils_test.exs │ │ ├── datasets_test.exs │ │ ├── summary │ │ │ ├── browse_insights_test.exs │ │ │ ├── metrics_v2_test.exs │ │ │ ├── response_label_test.exs │ │ │ ├── summarize_test.exs │ │ │ └── upsert_test.exs │ │ └── xapi │ │ │ └── pipeline_test.exs │ ├── auditing_test.exs │ ├── authoring │ │ ├── experiments_test.exs │ │ └── media_libary_test.exs │ ├── branding_test.exs │ ├── certification_eligibility_test.exs │ ├── clone_test.exs │ ├── conversation │ │ └── triggers_test.exs │ ├── conversation_test.exs │ ├── course_browse_test.exs │ ├── course_test.exs │ ├── database_test.exs │ ├── delivery │ │ ├── activity_provider_test.exs │ │ ├── analytics │ │ │ └── csv │ │ │ │ ├── eventually_correct.csv │ │ │ │ ├── first_try_correct.csv │ │ │ │ ├── number_of_attempts.csv │ │ │ │ ├── relative_difficulty.csv │ │ │ │ └── tests.numbers │ │ ├── attempts │ │ │ ├── activity_lifecycle │ │ │ │ └── roll_up_fix_bad_records_test.exs │ │ │ ├── attempt_reset_test.exs │ │ │ ├── browse_updates_test.exs │ │ │ ├── can_access_test.exs │ │ │ ├── core_test.exs │ │ │ ├── graded_test.exs │ │ │ ├── hiearchy_test.exs │ │ │ ├── latest_attempts_test.exs │ │ │ ├── manual_grading_test.exs │ │ │ ├── optimized_hiearchy_test.exs │ │ │ ├── page_lifecycle_test.exs │ │ │ ├── part_attempt_cleaner_test.exs │ │ │ ├── retake_mode_test.exs │ │ │ ├── scoring_test.exs │ │ │ └── was_late_test.exs │ │ ├── attempts_test.exs │ │ ├── audience_test.exs │ │ ├── certificates │ │ │ └── certificate_renderer_test.exs │ │ ├── certificates_test.exs │ │ ├── custom_logs │ │ │ └── legacy_logs_test.exs │ │ ├── depot │ │ │ └── match_spec_translator_test.exs │ │ ├── depot_test.exs │ │ ├── evaluation │ │ │ ├── explanation_test.exs │ │ │ ├── parser_test.exs │ │ │ └── rule_eval_test.exs │ │ ├── gating │ │ │ └── strategies │ │ │ │ ├── finished_test.exs │ │ │ │ ├── progress_test.exs │ │ │ │ ├── schedule_test.exs │ │ │ │ └── started_test.exs │ │ ├── gating_test.exs │ │ ├── granted_certificates_test.exs │ │ ├── hidden_instructor_test.exs │ │ ├── hierarchy_test.exs │ │ ├── hints_test.exs │ │ ├── major_updates │ │ │ ├── apply_major_updates_from_product.scenario.yaml │ │ │ ├── major_updates_test.exs │ │ │ ├── product_publishing_with_remix.scenario.yaml │ │ │ └── remix_selective_updates.scenario.yaml │ │ ├── metrics │ │ │ ├── avg_score_test.exs │ │ │ ├── completed.exs │ │ │ ├── last_interaction_test.exs │ │ │ └── progress_test.exs │ │ ├── minor_updates │ │ │ └── minor_updates_test.exs │ │ ├── page │ │ │ ├── activity_context_test.exs │ │ │ ├── model_pruner_test.exs │ │ │ ├── objectives_rollup_test.exs │ │ │ └── page_context_test.exs │ │ ├── paywall │ │ │ ├── discount_test.exs │ │ │ └── providers │ │ │ │ └── stripe_test.exs │ │ ├── paywall_test.exs │ │ ├── previous_next_index_test.exs │ │ ├── remix │ │ │ ├── init_test.exs │ │ │ ├── ops_test.exs │ │ │ └── save_test.exs │ │ ├── response_multi_test.exs │ │ ├── section_cache_test.exs │ │ ├── sections │ │ │ ├── assessment_settings_test.exs │ │ │ ├── blueprint_test.exs │ │ │ ├── browse_test.exs │ │ │ ├── certificates │ │ │ │ ├── certificate_test.exs │ │ │ │ └── workers │ │ │ │ │ ├── generate_pdf_test.exs │ │ │ │ │ └── mailer_test.exs │ │ │ ├── contained_objective_test.exs │ │ │ ├── contained_objectives_builder_test.exs │ │ │ ├── data_types_test.exs │ │ │ ├── enrollment_guard_test.exs │ │ │ ├── enrollments_browse_test.exs │ │ │ ├── ensure_resource_test.exs │ │ │ ├── graded_pages_test.exs │ │ │ ├── granted_certificate_test.exs │ │ │ ├── post_processing_test.exs │ │ │ ├── scheduling_test.exs │ │ │ ├── section_resource_depot_test.exs │ │ │ ├── section_resource_migration_test.exs │ │ │ ├── section_test.exs │ │ │ └── traverse_links_test.exs │ │ ├── sections_test.exs │ │ ├── settings │ │ │ └── auto_submit_custodian_test.exs │ │ ├── settings_test.exs │ │ ├── snapshots │ │ │ └── worker_test.exs │ │ ├── submission_test.exs │ │ └── test_mode_test.exs │ ├── delivery_test.exs │ ├── editing │ │ ├── activity_editor_test.exs │ │ ├── bib_entry_editor_test.exs │ │ ├── container_editor_test.exs │ │ ├── objective_editor_test.exs │ │ ├── page_editor_test.exs │ │ ├── resource_editor_test.exs │ │ └── utils_test.exs │ ├── feature_gate_test.exs │ ├── feature_telemetry_test.exs │ ├── features_test.exs │ ├── gen_ai │ │ ├── agent │ │ │ ├── action_comparator_test.exs │ │ │ ├── critic_test.exs │ │ │ ├── decision_test.exs │ │ │ ├── integration_test.exs │ │ │ ├── llm_bridge_test.exs │ │ │ ├── loop_detectors_test.exs │ │ │ ├── server_test.exs │ │ │ ├── state_analyzer_test.exs │ │ │ └── tool_broker_test.exs │ │ ├── completions │ │ │ └── null_provider_test.exs │ │ └── dialogue │ │ │ └── fallback_test.exs │ ├── gen_ai_test.exs │ ├── google_docs │ │ ├── client_test.exs │ │ ├── custom_elements_test.exs │ │ ├── dropdown_builder_test.exs │ │ ├── fixtures_test.exs │ │ ├── import_test.exs │ │ ├── markdown_parser_test.exs │ │ ├── mcq_builder_test.exs │ │ └── media_ingestor_test.exs │ ├── grading_test.exs │ ├── groups │ │ └── community_test.exs │ ├── groups_test.exs │ ├── independent_instructors_test.exs │ ├── institutions_test.exs │ ├── interop │ │ ├── digest │ │ │ ├── 1074.json │ │ │ ├── 1075.json │ │ │ ├── 22.json │ │ │ ├── 23.json │ │ │ ├── 241064652.json │ │ │ ├── 25.json │ │ │ ├── 26.json │ │ │ ├── 2689.json │ │ │ ├── 27.json │ │ │ ├── 28.json │ │ │ ├── 31.json │ │ │ ├── 32.json │ │ │ ├── 35.json │ │ │ ├── 36.json │ │ │ ├── 37.json │ │ │ ├── 39.json │ │ │ ├── 41.json │ │ │ ├── 42.json │ │ │ ├── 43.json │ │ │ ├── 44.json │ │ │ ├── 6533.json │ │ │ ├── 6534.json │ │ │ ├── 6535.json │ │ │ ├── 8.json │ │ │ ├── 8545.json │ │ │ ├── 89.json │ │ │ ├── _hierarchy.json │ │ │ ├── _media-manifest.json │ │ │ ├── _project.json │ │ │ ├── product.json │ │ │ ├── tag1.json │ │ │ └── tag2.json │ │ ├── export_test.exs │ │ ├── ingest │ │ │ ├── processor │ │ │ │ └── rewiring_test.exs │ │ │ └── scalable_ingest_test.exs │ │ ├── ingest_test.exs │ │ ├── rewire_links_test.exs │ │ └── scrub_test.exs │ ├── inventories │ │ └── publisher_test.exs │ ├── inventories_test.exs │ ├── locks_test.exs │ ├── lti │ │ ├── platform_external_tools_test.exs │ │ └── platform_instances_test.exs │ ├── lti_accounts_test.exs │ ├── major_updates_test.exs │ ├── mcp │ │ ├── auth │ │ │ └── token_generator_test.exs │ │ ├── auth_integration_test.exs │ │ ├── auth_test.exs │ │ ├── auth_usage_test.exs │ │ ├── resources │ │ │ ├── example_resource_test.exs │ │ │ ├── examples_resource_test.exs │ │ │ ├── hierarchy_builder_test.exs │ │ │ ├── project_resources_test.exs │ │ │ └── uri_builder_test.exs │ │ ├── security_test.exs │ │ ├── server_test.exs │ │ └── tools │ │ │ ├── activity_test_eval_tool_test.exs │ │ │ ├── activity_validation_tool_test.exs │ │ │ └── create_activity_tool_test.exs │ ├── notifications │ │ ├── pub_sub_test.exs │ │ ├── system_message_test.exs │ │ └── worker_test.exs │ ├── notifications_test.exs │ ├── part_components_test.exs │ ├── publishing │ │ ├── activity.json │ │ ├── authoring_resolver_test.exs │ │ ├── delivery_resolver_test.exs │ │ ├── page.json │ │ ├── publications │ │ │ └── diff_agent_test.exs │ │ ├── unique_ids_test.exs │ │ └── updating │ │ │ ├── airro_test.exs │ │ │ └── merge_test.exs │ ├── publishing_test.exs │ ├── qa │ │ ├── accessibility_test.exs │ │ ├── content_test.exs │ │ └── pedagogy_test.exs │ ├── registrar_test.exs │ ├── rendering │ │ ├── activity │ │ │ ├── html_test.exs │ │ │ └── markdown_test.exs │ │ ├── alternatives │ │ │ └── html_test.exs │ │ ├── content │ │ │ ├── example_content.json │ │ │ ├── example_malformed_content.json │ │ │ ├── example_unsupported_content.json │ │ │ ├── html_test.exs │ │ │ ├── mathml_sanitizer_test.exs │ │ │ └── plaintext_test.exs │ │ ├── page │ │ │ ├── audio_missing_src.json │ │ │ ├── example_malformed_page.json │ │ │ ├── example_page.json │ │ │ ├── html_test.exs │ │ │ ├── iframe_missing_src.json │ │ │ ├── image_missing_src.json │ │ │ ├── link_missing_href.json │ │ │ ├── missing_language.json │ │ │ └── youtube_missing_src.json │ │ ├── report │ │ │ └── html_test.exs │ │ └── survey │ │ │ └── html_test.exs │ ├── repo │ │ └── migrations │ │ │ └── add_scoped_feature_flags_test.exs │ ├── resources │ │ ├── alternatives_test.exs │ │ ├── collaboration_test.exs │ │ ├── content_migrator_test.exs │ │ ├── numbering_test.exs │ │ ├── page.json │ │ ├── page_browse_test.exs │ │ └── page_content_test.exs │ ├── resources_test.exs │ ├── scenarios │ │ ├── activity_objectives_test.exs │ │ ├── answer_question_test.exs │ │ ├── assert_progress_test.exs │ │ ├── change_operation_test.exs │ │ ├── clone_directive_test.exs │ │ ├── create_activity_test.exs │ │ ├── dsl_test.exs │ │ ├── edit_page_test.exs │ │ ├── edit_page_virtual_id_test.exs │ │ ├── objectives_format_test.exs │ │ ├── objectives_test.exs │ │ ├── product_comprehensive_test.exs │ │ ├── product_customize_test.exs │ │ ├── product_remix_test.exs │ │ ├── product_test.exs │ │ ├── proficiency_test.exs │ │ ├── remix_test.exs │ │ ├── resource_verify_test.exs │ │ ├── revise_operation_test.exs │ │ ├── section_revise_test.exs │ │ ├── tags_test.exs │ │ └── view_practice_page_test.exs │ ├── scoped_feature_flags │ │ ├── audit_integration_test.exs │ │ ├── can_access_test.exs │ │ ├── compile_time_validation_test.exs │ │ ├── defined_features_test.exs │ │ ├── features_test.exs │ │ ├── rollouts_test.exs │ │ ├── scoped_feature_exemption_test.exs │ │ ├── scoped_feature_flag_state_test.exs │ │ └── scoped_feature_rollout_test.exs │ ├── scoped_feature_flags_test.exs │ ├── search │ │ ├── embedding_worker_test.exs │ │ └── embeddings_test.exs │ ├── section_invites_test.exs │ ├── sections_test.exs │ ├── slack_test.exs │ ├── tags_test.exs │ ├── torus_doc │ │ ├── activities │ │ │ ├── mcq_converter_test.exs │ │ │ └── mcq_parser_test.exs │ │ ├── markdown │ │ │ └── markdown_parser_test.exs │ │ ├── markdown_inline_test.exs │ │ ├── mcq_inline_markup_test.exs │ │ ├── page_converter_test.exs │ │ ├── page_integration_test.exs │ │ ├── page_parser_test.exs │ │ └── page_with_activity_test.exs │ ├── torus_doc_test.exs │ ├── utils │ │ ├── schema_resolver_test.exs │ │ └── slug_test.exs │ ├── utils_test.exs │ ├── validation_test.exs │ ├── versioning │ │ └── revision_tree │ │ │ └── tree_test.exs │ └── vr_user_agents_test.exs ├── oli_web │ ├── author_auth_test.exs │ ├── common │ │ ├── assent_auth_web_test.exs │ │ ├── table │ │ │ └── table_model_test.exs │ │ └── utils_test.exs │ ├── components │ │ ├── delivery │ │ │ ├── adaptive_iframe_test.exs │ │ │ ├── assignments │ │ │ │ ├── assignment_card_test.exs │ │ │ │ └── assignments_list_test.exs │ │ │ ├── course_progress_panel_test.exs │ │ │ ├── dialogue_test.exs │ │ │ ├── discussion_board_test.exs │ │ │ ├── discussion_panel_test.exs │ │ │ ├── discussion_post_test.exs │ │ │ ├── exploration_card_test.exs │ │ │ ├── exploration_list_test.exs │ │ │ ├── layouts_test.exs │ │ │ ├── learning_objectives │ │ │ │ ├── expanded_objective_view_test.exs │ │ │ │ ├── student_proficiency_list_test.exs │ │ │ │ └── sub_objectives_list_test.exs │ │ │ ├── learning_opportunities_test.exs │ │ │ ├── list_navigator_test.exs │ │ │ ├── lti_external_tools_test.exs │ │ │ ├── students │ │ │ │ ├── certificates │ │ │ │ │ ├── pending_approval_component_test.exs │ │ │ │ │ └── state_approval_component_test.exs │ │ │ │ ├── email_button_test.exs │ │ │ │ └── email_modal_test.exs │ │ │ ├── surveys │ │ │ │ ├── surveys_assessments_table_model_test.exs │ │ │ │ └── surveys_test.exs │ │ │ └── up_next_test.exs │ │ ├── filter_panel_test.exs │ │ ├── footer_test.exs │ │ ├── project │ │ │ └── advanced_activity_item_test.exs │ │ ├── scoped_feature_toggle_component_test.exs │ │ ├── tech_support_live_test.exs │ │ └── utils_test.exs │ ├── controllers │ │ ├── activity_bank_controller_test.exs │ │ ├── activity_controller_test.exs │ │ ├── api │ │ │ ├── activity │ │ │ │ ├── bundle.zip │ │ │ │ ├── manifest.json │ │ │ │ ├── test_test_activity.js │ │ │ │ └── test_test_delivery.js │ │ │ ├── activity_bank_controller_test.exs │ │ │ ├── activity_registration_controller_test.exs │ │ │ ├── attempt_controller_test.exs │ │ │ ├── automation │ │ │ │ ├── automation_setup_controller_test.exs │ │ │ │ └── export_unit_test_project.zip │ │ │ ├── blob_storage_controller_test.exs │ │ │ ├── global_state_controller_test.exs │ │ │ ├── health_controller_test.exs │ │ │ ├── lti_controller_integration_test.exs │ │ │ ├── lti_controller_test.exs │ │ │ ├── page_lifecycle_controller_test.exs │ │ │ ├── payment_controller_test.exs │ │ │ ├── product_controller_test.exs │ │ │ ├── publisher_controller_test.exs │ │ │ ├── resource_attempt_state_controller_test.exs │ │ │ ├── resource_controller_test.exs │ │ │ ├── scheduling_controller_test.exs │ │ │ ├── section_state_controller_test.exs │ │ │ ├── tag_controller_test.exs │ │ │ ├── trigger_point_controller_test.exs │ │ │ └── xapi_controller_test.exs │ │ ├── brand_assets │ │ │ ├── oli_logo.png │ │ │ └── oli_logo_dark.png │ │ ├── brand_controller_test.exs │ │ ├── certificate_controller_test.exs │ │ ├── cognito_controller_test.exs │ │ ├── collaborator_controller_test.exs │ │ ├── cookie_consent_controller_test.exs │ │ ├── delivery_controller_test.exs │ │ ├── delivery_retrieve_test.exs │ │ ├── deployment_controller_test.exs │ │ ├── granted_certificates_controller_test.exs │ │ ├── ingest_controller_test.exs │ │ ├── institution_controller_test.exs │ │ ├── invite_controller_test.exs │ │ ├── launch_controller_test.exs │ │ ├── legacy_superactivity_controller_test.exs │ │ ├── lti_ags_controller_test.exs │ │ ├── lti_controller_test.exs │ │ ├── objectives_controller_test.exs │ │ ├── open_and_free_controller_test.exs │ │ ├── page_delivery_controller_test.exs │ │ ├── payment_controller_test.exs │ │ ├── payment_providers │ │ │ ├── cashnet_controller_test.exs │ │ │ └── stripe_controller_test.exs │ │ ├── project_controller_test.exs │ │ ├── projects_controller_test.exs │ │ ├── registration_controller_test.exs │ │ ├── resource_controller_test.exs │ │ ├── static_page_controller_test.exs │ │ ├── user_session_controller_test.exs │ │ └── workspace_controller_test.exs │ ├── live │ │ ├── admin │ │ │ ├── audit_log_live_test.exs │ │ │ ├── canary_rollouts_live_test.exs │ │ │ ├── external_tools │ │ │ │ ├── details_view_test.exs │ │ │ │ ├── external_tools_view_test.exs │ │ │ │ ├── new_external_tool_view_test.exs │ │ │ │ └── usage_view_test.exs │ │ │ ├── institutions │ │ │ │ ├── index_live_test.exs │ │ │ │ ├── research_consent_view.exs │ │ │ │ └── sections_and_students_view_test.exs │ │ │ ├── part_attempts_view_test.exs │ │ │ ├── registrations │ │ │ │ └── registrations_view_test.exs │ │ │ ├── restore_user_progress_test.exs │ │ │ ├── upload_pipeline_view_test.exs │ │ │ └── vr_user_agents_view_test.exs │ │ ├── admin_live_test.exs │ │ ├── all_pages_live_test.exs │ │ ├── api_keys │ │ │ └── api_keys_live_test.exs │ │ ├── author_confirmation_instructions_live_test.exs │ │ ├── author_confirmation_live_test.exs │ │ ├── author_forgot_password_live_test.exs │ │ ├── author_login_live_test.exs │ │ ├── author_registration_live_test.exs │ │ ├── author_reset_password_live_test.exs │ │ ├── author_settings_live_test.exs │ │ ├── authors │ │ │ └── invitations │ │ │ │ └── invites_view_test.exs │ │ ├── browse_updates_live_test.exs │ │ ├── certificates │ │ │ ├── certificate_settings_live_test.exs │ │ │ └── components │ │ │ │ ├── certificates_issued_tab_test.exs │ │ │ │ ├── design_tab_test.exs │ │ │ │ └── thresholds_tab_test.exs │ │ ├── collaboration_live_test.exs │ │ ├── collaborators │ │ │ └── invitations │ │ │ │ └── invite_view_test.exs │ │ ├── common │ │ │ ├── hierarchy │ │ │ │ └── move_modal_test.exs │ │ │ └── paging_params_test.exs │ │ ├── community_live_test.exs │ │ ├── components │ │ │ └── tags │ │ │ │ └── tags_component_test.exs │ │ ├── curriculum │ │ │ ├── activities_delta_test.exs │ │ │ ├── container_test.exs │ │ │ ├── entries │ │ │ │ └── options_modal_content_test.exs │ │ │ └── rollup_test.exs │ │ ├── delivery │ │ │ ├── instructor_dashboard │ │ │ │ ├── discussions │ │ │ │ │ └── discussions_tab_test.exs │ │ │ │ ├── insights │ │ │ │ │ ├── content_tab_test.exs │ │ │ │ │ ├── learning_objectives_tab_test.exs │ │ │ │ │ ├── quiz_scores_tab_test.exs │ │ │ │ │ └── students_tab_test.exs │ │ │ │ ├── instructor_dashboard_live_test.exs │ │ │ │ ├── learning_objectives │ │ │ │ │ └── related_activities_live_test.exs │ │ │ │ ├── manage │ │ │ │ │ └── manage_tab_test.exs │ │ │ │ └── overview │ │ │ │ │ ├── content_tab_test.exs │ │ │ │ │ ├── practice_activities_tab_test.exs │ │ │ │ │ └── recommended_actions_tab_test.exs │ │ │ ├── onboarding_wizard │ │ │ │ └── student_onboarding_wizard_test.exs │ │ │ ├── remix │ │ │ │ └── actions_test.exs │ │ │ ├── student │ │ │ │ ├── assignments_live_test.exs │ │ │ │ ├── certificate_live_test.exs │ │ │ │ ├── discussions_live_test.exs │ │ │ │ ├── explorations_live_test.exs │ │ │ │ ├── home │ │ │ │ │ └── components │ │ │ │ │ │ └── schedule_component_test.exs │ │ │ │ ├── index_live_test.exs │ │ │ │ ├── learn_live_test.exs │ │ │ │ ├── lesson │ │ │ │ │ └── components │ │ │ │ │ │ ├── one_at_a_time_question_test.exs │ │ │ │ │ │ └── outline_component_test.exs │ │ │ │ ├── lesson_live_test.exs │ │ │ │ ├── prologue_live_test.exs │ │ │ │ ├── review_live_test.exs │ │ │ │ ├── schedule_live_test.exs │ │ │ │ └── utils_test.exs │ │ │ └── student_dashboard │ │ │ │ ├── components │ │ │ │ ├── actions_tab_test.exs │ │ │ │ ├── content_tab_test.exs │ │ │ │ ├── learning_objectives_tab_test.exs │ │ │ │ ├── progress_tab_test.exs │ │ │ │ └── quizz_scores_tab_test.exs │ │ │ │ ├── course_content_live_test.exs │ │ │ │ └── student_dashboard_live_test.exs │ │ ├── dialogue │ │ │ └── window_live_test.exs │ │ ├── discounts_live_test.exs │ │ ├── experiments_live_test.exs │ │ ├── failed_grade_sync_live_test.exs │ │ ├── gradebook_view_live_test.exs │ │ ├── grades │ │ │ └── gradebook_table_model_test.exs │ │ ├── grades_live_test.exs │ │ ├── history │ │ │ └── revision_history_test.exs │ │ ├── insights │ │ │ └── insights_test.exs │ │ ├── institutions_live_test.exs │ │ ├── link_account_live_test.exs │ │ ├── lms_user_instructions_live_test.exs │ │ ├── manage_source_materials_live_test.exs │ │ ├── new_course │ │ │ ├── course_details_test.exs │ │ │ ├── name_course_test.exs │ │ │ └── select_source_test.exs │ │ ├── objectives_live_test.exs │ │ ├── payments_live_test.exs │ │ ├── products │ │ │ └── details_view_scoped_features_test.exs │ │ ├── products_test.exs │ │ ├── progress │ │ │ ├── page_attempt_summary_test.exs │ │ │ └── student_resource_view_live_test.exs │ │ ├── progress_live_test.exs │ │ ├── project_visibility_test.exs │ │ ├── projects │ │ │ └── mcp_token_manager_test.exs │ │ ├── projects_live_test.exs │ │ ├── publish_live_test.exs │ │ ├── publisher_live_test.exs │ │ ├── qa_logic_test.exs │ │ ├── remix_section_test.exs │ │ ├── resources │ │ │ └── alternatives_editor_test.exs │ │ ├── sections │ │ │ ├── admin_index_live_test.exs │ │ │ ├── assessment_settings │ │ │ │ └── settings_live_test.exs │ │ │ ├── edit_live_test.exs │ │ │ ├── enrollments │ │ │ │ └── invalid_section_invite_view_test.exs │ │ │ ├── gating_and_scheduling_test.exs │ │ │ ├── invite_view_test.exs │ │ │ ├── lti_external_tools_live_test.exs │ │ │ └── sections_table_model_test.exs │ │ ├── student_view_live_test.exs │ │ ├── system_message_live_test.exs │ │ ├── user_confirmation_instructions_live_test.exs │ │ ├── user_confirmation_live_test.exs │ │ ├── user_forgot_password_live_test.exs │ │ ├── user_login_live_test.exs │ │ ├── user_registration_live_test.exs │ │ ├── user_reset_password_live_test.exs │ │ ├── user_settings_live_test.exs │ │ ├── users │ │ │ ├── author_detail_view_test.exs │ │ │ ├── invitations │ │ │ │ └── users_invite_view_test.exs │ │ │ └── user_detail_view_test.exs │ │ └── workspaces │ │ │ ├── course_author │ │ │ ├── activities_live_test.exs │ │ │ ├── activity_bank_live_test.exs │ │ │ ├── add_activities_and_tools_modal_test.exs │ │ │ ├── bibliography_test.exs │ │ │ ├── curriculum_live_import_test.exs │ │ │ ├── curriculum_live_test.exs │ │ │ ├── editor_live_test.exs │ │ │ ├── experiments_live_test.exs │ │ │ ├── history_live_test.exs │ │ │ ├── insights_live_test.exs │ │ │ ├── objectives_live_test.exs │ │ │ ├── overview_live_scoped_features_test.exs │ │ │ ├── overview_live_test.exs │ │ │ ├── pages_live_test.exs │ │ │ ├── products │ │ │ │ └── details_live_test.exs │ │ │ ├── products_live_test.exs │ │ │ ├── publish_live_test.exs │ │ │ └── qa_logic_test.exs │ │ │ ├── course_author_test.exs │ │ │ ├── instructor │ │ │ └── dashboard_live_test.exs │ │ │ ├── instructor_test.exs │ │ │ └── student_test.exs │ ├── live_session_plugs │ │ ├── require_enrollment_test.exs │ │ └── set_section_test.exs │ ├── plugs │ │ ├── ensure_datashop_id_test.exs │ │ ├── ensure_user_section_visit_test.exs │ │ ├── header_size_logger_test.exs │ │ ├── maybe_gated_resource_test.exs │ │ ├── plug_order_integration_test.exs │ │ ├── redirect_by_attempt_state_test.exs │ │ ├── redirect_plug_test.exs │ │ └── restrict_lms_user_access_test.exs │ ├── tech_support_routes_test.exs │ ├── user_auth_test.exs │ └── views │ │ ├── error_view_test.exs │ │ ├── layout_view_test.exs │ │ ├── navigation_view_test.exs │ │ └── page_view_test.exs ├── run_single_scenario.exs ├── scenarios │ ├── README.md │ ├── activities │ │ ├── activities_test.exs │ │ ├── activity_scope_test.scenario.yaml │ │ ├── bank_selection_null_logic.scenario.yaml │ │ ├── bank_selection_tag_filtering.scenario.yaml │ │ ├── bank_selection_test.scenario.yaml │ │ ├── bank_selection_title_resolution_test.scenario.yaml │ │ └── null_logic_hooks.ex │ ├── cloning │ │ ├── clone_demo.scenario.yaml │ │ ├── clone_independence_with_new_content.scenario.yaml │ │ ├── cloning_test.exs │ │ └── independent_publishing.scenario.yaml │ ├── core │ │ └── simple_project.scenario.yaml │ ├── delivery │ │ ├── major_updates │ │ │ ├── add_new_content.scenario.yaml │ │ │ ├── apply_major_updates_from_product.scenario.yaml │ │ │ ├── product_publishing_with_remix.scenario.yaml │ │ │ ├── product_section_update_restriction.scenario.yaml │ │ │ ├── remix_selective_updates.scenario.yaml │ │ │ └── simple_update_test.scenario.yaml │ │ └── minor_updates │ │ │ └── page_title_update.scenario.yaml │ ├── directives │ │ └── hook_handler_test.exs │ ├── features │ │ ├── bad_curriculum_missing_child.scenario.yaml │ │ ├── bad_curriculum_nil_child.scenario.yaml │ │ ├── curriculum_hooks.ex │ │ ├── move_and_reorder.scenario.yaml │ │ ├── product_creation.scenario.yaml │ │ ├── remix_to_section.scenario.yaml │ │ ├── section_customization.scenario.yaml │ │ └── section_verification.scenario.yaml │ ├── hooks │ │ └── hook_demo.scenario.yaml │ ├── proficiency │ │ └── student_completes_all_correctly.scenario.yaml │ ├── proficiency_base.scenario.yaml │ ├── proficiency_example_usage.scenario.yaml │ ├── run_all_test.exs │ ├── scenario_runner_test.exs │ ├── sections │ │ ├── bad_product_root_nil_child.scenario.yaml │ │ ├── bad_section_activity_revision_deleted.scenario.yaml │ │ ├── bad_section_missing_activity_reference.scenario.yaml │ │ ├── bad_section_unit_missing_child.scenario.yaml │ │ ├── bad_section_unit_nil_child.scenario.yaml │ │ └── course_section_hooks.ex │ ├── use_directive │ │ ├── base_project.yaml │ │ ├── main_scenario.yaml │ │ ├── middle_include.yaml │ │ ├── nested_include.yaml │ │ ├── shared_setup.yaml │ │ ├── subdir │ │ │ ├── neighbor.yaml │ │ │ └── sub_include.yaml │ │ ├── test_context_sharing.yaml │ │ ├── test_nested_use.yaml │ │ └── test_subdirectory.yaml │ └── validation │ │ └── invalid_attributes_test.exs ├── support │ ├── channel_case.ex │ ├── conn_case.ex │ ├── data_case.ex │ ├── dataset │ │ └── python │ │ │ ├── dataset │ │ │ └── local_datashop.py │ │ │ ├── generate_local_datashop.py │ │ │ └── requirements.txt │ ├── digests │ │ ├── digest_1 │ │ │ └── .gitkeep │ │ ├── digest_2 │ │ │ ├── _hierarchy.json │ │ │ ├── _media-manifest.json │ │ │ └── _project.json │ │ ├── digest_3 │ │ │ ├── _hierarchy.json │ │ │ ├── _media-manifest.json │ │ │ └── _project.json │ │ ├── digest_4 │ │ │ ├── _hierarchy.json │ │ │ └── _project.json │ │ ├── digest_5 │ │ │ ├── _media-manifest.json │ │ │ └── _project.json │ │ └── digest_6 │ │ │ ├── _hierarchy.json │ │ │ └── _media-manifest.json │ ├── factory.ex │ ├── fixtures │ │ ├── accounts_fixtures.ex │ │ └── test_rsa_private.pem │ ├── google_docs_import │ │ ├── README.md │ │ ├── activities.md │ │ ├── baseline.md │ │ ├── custom_elements.md │ │ ├── helpers.ex │ │ └── media.md │ ├── live_component_tests.ex │ ├── lti_test_helpers.ex │ ├── mcp_test_helpers.ex │ ├── python_runner.ex │ ├── scenarios │ │ ├── README.md │ │ ├── docs │ │ │ ├── content_authoring.md │ │ │ ├── hooks.md │ │ │ ├── products.md │ │ │ ├── projects.md │ │ │ ├── sections.md │ │ │ ├── student_simulation.md │ │ │ └── users_and_org.md │ │ ├── examples │ │ │ ├── create_activity_example.yaml │ │ │ └── proficiency_example.yaml │ │ ├── scenario_runner.ex │ │ ├── test_helpers.ex │ │ └── test_support.ex │ └── test_helpers.ex └── test_helper.exs └── test_parser.exs /.ci/RISK_RULES.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.ci/RISK_RULES.yaml -------------------------------------------------------------------------------- /.claude/agents/elixir-code-reviewer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.claude/agents/elixir-code-reviewer.md -------------------------------------------------------------------------------- /.codex/prompts/analyze.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.codex/prompts/analyze.md -------------------------------------------------------------------------------- /.codex/prompts/architect.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.codex/prompts/architect.md -------------------------------------------------------------------------------- /.codex/prompts/develop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.codex/prompts/develop.md -------------------------------------------------------------------------------- /.codex/prompts/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.codex/prompts/plan.md -------------------------------------------------------------------------------- /.codex/prompts/scenario.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.codex/prompts/scenario.md -------------------------------------------------------------------------------- /.credo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.credo.exs -------------------------------------------------------------------------------- /.cursor/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.cursor/README.md -------------------------------------------------------------------------------- /.cursor/mcp.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.cursor/mcp.example.json -------------------------------------------------------------------------------- /.cursor/oli.example.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.cursor/oli.example.mdc -------------------------------------------------------------------------------- /.cursor/user-custom-rules.example.mdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.cursor/user-custom-rules.example.mdc -------------------------------------------------------------------------------- /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.devcontainer/Dockerfile -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.devcontainer/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.devcontainer/docker-compose.yml -------------------------------------------------------------------------------- /.devcontainer/scripts/init.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.devcontainer/scripts/init.sh -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.dockerignore -------------------------------------------------------------------------------- /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/workflows/ai-review.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/ai-review.yml -------------------------------------------------------------------------------- /.github/workflows/auto-deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/auto-deploy.yml -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.github/workflows/danger.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/danger.yml -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/deploy.yml -------------------------------------------------------------------------------- /.github/workflows/documentation.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/documentation.yml -------------------------------------------------------------------------------- /.github/workflows/jira.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/jira.yml -------------------------------------------------------------------------------- /.github/workflows/package.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.github/workflows/package.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.gitignore -------------------------------------------------------------------------------- /.review/CONTRACT.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/CONTRACT.json -------------------------------------------------------------------------------- /.review/elixir.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/elixir.md -------------------------------------------------------------------------------- /.review/performance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/performance.md -------------------------------------------------------------------------------- /.review/requirements.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/requirements.md -------------------------------------------------------------------------------- /.review/security.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/security.md -------------------------------------------------------------------------------- /.review/typescript.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/typescript.md -------------------------------------------------------------------------------- /.review/ui.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.review/ui.md -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.tool-versions -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | --cwd assets -------------------------------------------------------------------------------- /AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/AGENTS.md -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/README.md -------------------------------------------------------------------------------- /assets/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/.eslintrc.json -------------------------------------------------------------------------------- /assets/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/.npmignore -------------------------------------------------------------------------------- /assets/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/.prettierrc -------------------------------------------------------------------------------- /assets/.storybook/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/.storybook/main.js -------------------------------------------------------------------------------- /assets/.storybook/preview-head.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/.storybook/preview-head.html -------------------------------------------------------------------------------- /assets/.storybook/preview.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/.storybook/preview.js -------------------------------------------------------------------------------- /assets/__mocks__/empty.mock.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /assets/__mocks__/monaco.mock.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/__mocks__/monaco.mock.js -------------------------------------------------------------------------------- /assets/automation/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/.gitignore -------------------------------------------------------------------------------- /assets/automation/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/.prettierrc -------------------------------------------------------------------------------- /assets/automation/.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 18.18.0 2 | -------------------------------------------------------------------------------- /assets/automation/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/README.md -------------------------------------------------------------------------------- /assets/automation/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/eslint.config.mjs -------------------------------------------------------------------------------- /assets/automation/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/package-lock.json -------------------------------------------------------------------------------- /assets/automation/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/package.json -------------------------------------------------------------------------------- /assets/automation/src/core/Table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/src/core/Table.ts -------------------------------------------------------------------------------- /assets/automation/src/core/Utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/src/core/Utils.ts -------------------------------------------------------------------------------- /assets/automation/tests/resources/config.env: -------------------------------------------------------------------------------- 1 | AUTO_CLOSE_BROWSER=true -------------------------------------------------------------------------------- /assets/automation/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/tsconfig.json -------------------------------------------------------------------------------- /assets/automation/tslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/automation/tslint.json -------------------------------------------------------------------------------- /assets/babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/babel.config.js -------------------------------------------------------------------------------- /assets/css/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/app.css -------------------------------------------------------------------------------- /assets/css/bootstrap-shims.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bootstrap-shims.css -------------------------------------------------------------------------------- /assets/css/bs/accordion.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/accordion.css -------------------------------------------------------------------------------- /assets/css/bs/dropdown.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/dropdown.css -------------------------------------------------------------------------------- /assets/css/bs/modal.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/modal.css -------------------------------------------------------------------------------- /assets/css/bs/nav-tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/nav-tabs.css -------------------------------------------------------------------------------- /assets/css/bs/offcanvas.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/offcanvas.css -------------------------------------------------------------------------------- /assets/css/bs/popover.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/popover.css -------------------------------------------------------------------------------- /assets/css/bs/spinner.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/spinner.css -------------------------------------------------------------------------------- /assets/css/bs/switch.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/switch.css -------------------------------------------------------------------------------- /assets/css/bs/tooltip.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/bs/tooltip.css -------------------------------------------------------------------------------- /assets/css/button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/button.css -------------------------------------------------------------------------------- /assets/css/input.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/input.css -------------------------------------------------------------------------------- /assets/css/markdown-editor.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/markdown-editor.css -------------------------------------------------------------------------------- /assets/css/table.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/table.css -------------------------------------------------------------------------------- /assets/css/text.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/text.css -------------------------------------------------------------------------------- /assets/css/transitions.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/css/transitions.css -------------------------------------------------------------------------------- /assets/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/jest.config.js -------------------------------------------------------------------------------- /assets/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/package.json -------------------------------------------------------------------------------- /assets/sdk/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/sdk/package.json -------------------------------------------------------------------------------- /assets/setup-tests.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/setup-tests.js -------------------------------------------------------------------------------- /assets/src/actions/media.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/actions/media.ts -------------------------------------------------------------------------------- /assets/src/actions/modal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/actions/modal.ts -------------------------------------------------------------------------------- /assets/src/adaptivity/capi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/adaptivity/capi.ts -------------------------------------------------------------------------------- /assets/src/adaptivity/rules.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/adaptivity/rules.ts -------------------------------------------------------------------------------- /assets/src/adaptivity/scripting.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/adaptivity/scripting.ts -------------------------------------------------------------------------------- /assets/src/apps/ActivityBankApp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/ActivityBankApp.tsx -------------------------------------------------------------------------------- /assets/src/apps/AuthoringApp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/AuthoringApp.tsx -------------------------------------------------------------------------------- /assets/src/apps/BibliographyApp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/BibliographyApp.tsx -------------------------------------------------------------------------------- /assets/src/apps/Components.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/Components.tsx -------------------------------------------------------------------------------- /assets/src/apps/DeliveryApp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/DeliveryApp.tsx -------------------------------------------------------------------------------- /assets/src/apps/OfflineDetector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/OfflineDetector.tsx -------------------------------------------------------------------------------- /assets/src/apps/PageEditorApp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/PageEditorApp.tsx -------------------------------------------------------------------------------- /assets/src/apps/ResourceEditor.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/ResourceEditor.scss -------------------------------------------------------------------------------- /assets/src/apps/SchedulerApp.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/SchedulerApp.tsx -------------------------------------------------------------------------------- /assets/src/apps/app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/app.tsx -------------------------------------------------------------------------------- /assets/src/apps/authoring/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/authoring/types.ts -------------------------------------------------------------------------------- /assets/src/apps/bank/EditButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/apps/bank/EditButton.tsx -------------------------------------------------------------------------------- /assets/src/components/Dialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/components/Dialog.tsx -------------------------------------------------------------------------------- /assets/src/components/activities/common/stem/delivery/StemDelivery.scss: -------------------------------------------------------------------------------- 1 | .stem__delivery { 2 | margin-bottom: 16px; 3 | } 4 | -------------------------------------------------------------------------------- /assets/src/components/activities/directed-discussion/example_content.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/src/components/activities/image_coding/example_content.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/src/components/activities/likert/example_content.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/src/components/activities/lti_external_tool/example_content.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/src/components/activities/multiple_choice/example_content.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/src/components/activities/oli_embedded/example_content.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/src/components/misc/Card.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/components/misc/Card.tsx -------------------------------------------------------------------------------- /assets/src/components/misc/Icon.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/components/misc/Icon.tsx -------------------------------------------------------------------------------- /assets/src/data/activities/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/activities/utils.ts -------------------------------------------------------------------------------- /assets/src/data/content/activity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/activity.ts -------------------------------------------------------------------------------- /assets/src/data/content/bank.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/bank.ts -------------------------------------------------------------------------------- /assets/src/data/content/bibentry.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/bibentry.ts -------------------------------------------------------------------------------- /assets/src/data/content/editors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/editors.ts -------------------------------------------------------------------------------- /assets/src/data/content/resource.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/resource.ts -------------------------------------------------------------------------------- /assets/src/data/content/tags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/tags.ts -------------------------------------------------------------------------------- /assets/src/data/content/utils.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/content/utils.tsx -------------------------------------------------------------------------------- /assets/src/data/events.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/events.ts -------------------------------------------------------------------------------- /assets/src/data/persistence/bank.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/persistence/bank.ts -------------------------------------------------------------------------------- /assets/src/data/persistence/blob.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/persistence/blob.ts -------------------------------------------------------------------------------- /assets/src/data/persistence/lock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/persistence/lock.ts -------------------------------------------------------------------------------- /assets/src/data/persistence/tags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/persistence/tags.ts -------------------------------------------------------------------------------- /assets/src/data/persistence/xapi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/persistence/xapi.ts -------------------------------------------------------------------------------- /assets/src/data/triggers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/triggers.ts -------------------------------------------------------------------------------- /assets/src/data/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/data/types.ts -------------------------------------------------------------------------------- /assets/src/hooks/auto_select.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/auto_select.ts -------------------------------------------------------------------------------- /assets/src/hooks/before_unload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/before_unload.ts -------------------------------------------------------------------------------- /assets/src/hooks/click_outside.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/click_outside.ts -------------------------------------------------------------------------------- /assets/src/hooks/copy_listener.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/copy_listener.ts -------------------------------------------------------------------------------- /assets/src/hooks/countdown.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/countdown.ts -------------------------------------------------------------------------------- /assets/src/hooks/countdown_timer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/countdown_timer.ts -------------------------------------------------------------------------------- /assets/src/hooks/delayed_submit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/delayed_submit.ts -------------------------------------------------------------------------------- /assets/src/hooks/dragdrop.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/dragdrop.ts -------------------------------------------------------------------------------- /assets/src/hooks/email_list.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/email_list.ts -------------------------------------------------------------------------------- /assets/src/hooks/end_date_timer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/end_date_timer.ts -------------------------------------------------------------------------------- /assets/src/hooks/global_tooltip.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/global_tooltip.ts -------------------------------------------------------------------------------- /assets/src/hooks/graph.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/graph.ts -------------------------------------------------------------------------------- /assets/src/hooks/highlight_code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/highlight_code.ts -------------------------------------------------------------------------------- /assets/src/hooks/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/index.ts -------------------------------------------------------------------------------- /assets/src/hooks/live_modal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/live_modal.ts -------------------------------------------------------------------------------- /assets/src/hooks/media_query.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/media_query.ts -------------------------------------------------------------------------------- /assets/src/hooks/modal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/modal.ts -------------------------------------------------------------------------------- /assets/src/hooks/monaco_editor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/monaco_editor.tsx -------------------------------------------------------------------------------- /assets/src/hooks/page_trigger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/page_trigger.ts -------------------------------------------------------------------------------- /assets/src/hooks/point_markers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/point_markers.ts -------------------------------------------------------------------------------- /assets/src/hooks/recaptcha.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/recaptcha.ts -------------------------------------------------------------------------------- /assets/src/hooks/resize_listener.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/resize_listener.ts -------------------------------------------------------------------------------- /assets/src/hooks/review_activity.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/review_activity.ts -------------------------------------------------------------------------------- /assets/src/hooks/scroller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/scroller.ts -------------------------------------------------------------------------------- /assets/src/hooks/select_listener.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/select_listener.ts -------------------------------------------------------------------------------- /assets/src/hooks/show_teaser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/show_teaser.ts -------------------------------------------------------------------------------- /assets/src/hooks/slider_scroll.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/slider_scroll.ts -------------------------------------------------------------------------------- /assets/src/hooks/submit_form.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/submit_form.ts -------------------------------------------------------------------------------- /assets/src/hooks/system_message.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/system_message.ts -------------------------------------------------------------------------------- /assets/src/hooks/tags_component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/tags_component.ts -------------------------------------------------------------------------------- /assets/src/hooks/theme_toggle.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/theme_toggle.tsx -------------------------------------------------------------------------------- /assets/src/hooks/tooltip.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/tooltip.ts -------------------------------------------------------------------------------- /assets/src/hooks/useKeyDown.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/useKeyDown.tsx -------------------------------------------------------------------------------- /assets/src/hooks/video_player.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/video_player.ts -------------------------------------------------------------------------------- /assets/src/hooks/video_preview.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/video_preview.ts -------------------------------------------------------------------------------- /assets/src/hooks/wakeup_dot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/hooks/wakeup_dot.ts -------------------------------------------------------------------------------- /assets/src/payment/stripe/client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/payment/stripe/client.ts -------------------------------------------------------------------------------- /assets/src/phoenix/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/app.ts -------------------------------------------------------------------------------- /assets/src/phoenix/dark.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/dark.ts -------------------------------------------------------------------------------- /assets/src/phoenix/finalize.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/finalize.ts -------------------------------------------------------------------------------- /assets/src/phoenix/modal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/modal.ts -------------------------------------------------------------------------------- /assets/src/phoenix/phoenix.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'phoenix'; 2 | -------------------------------------------------------------------------------- /assets/src/phoenix/phoenix_live_view.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'phoenix_live_view'; 2 | -------------------------------------------------------------------------------- /assets/src/phoenix/ready.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/ready.ts -------------------------------------------------------------------------------- /assets/src/phoenix/socket.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/socket.ts -------------------------------------------------------------------------------- /assets/src/phoenix/timezone.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/phoenix/timezone.ts -------------------------------------------------------------------------------- /assets/src/state/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/state/index.ts -------------------------------------------------------------------------------- /assets/src/state/media.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/state/media.ts -------------------------------------------------------------------------------- /assets/src/state/modal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/state/modal.ts -------------------------------------------------------------------------------- /assets/src/state/other.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/state/other.ts -------------------------------------------------------------------------------- /assets/src/state/preferences.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/state/preferences.ts -------------------------------------------------------------------------------- /assets/src/state/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/state/store.ts -------------------------------------------------------------------------------- /assets/src/stories/Card.stories.mdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/stories/Card.stories.mdx -------------------------------------------------------------------------------- /assets/src/stories/TorusBG.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/stories/TorusBG.tsx -------------------------------------------------------------------------------- /assets/src/stories/assets/flow.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/stories/assets/flow.svg -------------------------------------------------------------------------------- /assets/src/stories/assets/repo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/stories/assets/repo.svg -------------------------------------------------------------------------------- /assets/src/types/media.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/types/media.ts -------------------------------------------------------------------------------- /assets/src/types/nullish.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/types/nullish.ts -------------------------------------------------------------------------------- /assets/src/utils/appsignal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/appsignal.ts -------------------------------------------------------------------------------- /assets/src/utils/browser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/browser.ts -------------------------------------------------------------------------------- /assets/src/utils/classNames.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/classNames.ts -------------------------------------------------------------------------------- /assets/src/utils/colors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/colors.ts -------------------------------------------------------------------------------- /assets/src/utils/common.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/common.ts -------------------------------------------------------------------------------- /assets/src/utils/date.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/date.ts -------------------------------------------------------------------------------- /assets/src/utils/decode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/decode.ts -------------------------------------------------------------------------------- /assets/src/utils/format.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/format.ts -------------------------------------------------------------------------------- /assets/src/utils/guid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/guid.ts -------------------------------------------------------------------------------- /assets/src/utils/i18n.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/i18n.ts -------------------------------------------------------------------------------- /assets/src/utils/lang.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/lang.ts -------------------------------------------------------------------------------- /assets/src/utils/mathmlSanitizer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/mathmlSanitizer.ts -------------------------------------------------------------------------------- /assets/src/utils/measure.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/measure.ts -------------------------------------------------------------------------------- /assets/src/utils/number.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/number.ts -------------------------------------------------------------------------------- /assets/src/utils/params.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/params.ts -------------------------------------------------------------------------------- /assets/src/utils/pathOperations.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/pathOperations.ts -------------------------------------------------------------------------------- /assets/src/utils/surface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/surface.ts -------------------------------------------------------------------------------- /assets/src/utils/test_utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/test_utils.ts -------------------------------------------------------------------------------- /assets/src/utils/xmlPretty.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/src/utils/xmlPretty.ts -------------------------------------------------------------------------------- /assets/static/custom/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/custom/README.md -------------------------------------------------------------------------------- /assets/static/ebsco/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/ebsco/login.html -------------------------------------------------------------------------------- /assets/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/favicon.ico -------------------------------------------------------------------------------- /assets/static/images/vlab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/images/vlab.png -------------------------------------------------------------------------------- /assets/static/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/robots.txt -------------------------------------------------------------------------------- /assets/static/vlab/896.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/vlab/896.css -------------------------------------------------------------------------------- /assets/static/vlab/896.css.map: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/vlab/896.css.map -------------------------------------------------------------------------------- /assets/static/vlab/images/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/vlab/images/logo.gif -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/Redox/redox/assignment.json: -------------------------------------------------------------------------------- 1 | { 2 | "assignmentText": "" 3 | } 4 | -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim1/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim2/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim3/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim4/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim5/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim6/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/chemvlab/thermodynamics/Swim7/assignment.json: -------------------------------------------------------------------------------- 1 | { "assignmentText": ""} -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/default/assignment.json: -------------------------------------------------------------------------------- 1 | { 2 | "assignmentText": "" 3 | } 4 | -------------------------------------------------------------------------------- /assets/static/vlab/scripts/resources/assignments/en/hotcoldpack/assignment.json: -------------------------------------------------------------------------------- 1 | { 2 | "assignmentText": "" 3 | } 4 | -------------------------------------------------------------------------------- /assets/static/vlab/vlab.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/static/vlab/vlab.html -------------------------------------------------------------------------------- /assets/styles/adaptive/activities/image.scss: -------------------------------------------------------------------------------- 1 | janus-image { 2 | //background-color: var(--black5_a); 3 | } 4 | -------------------------------------------------------------------------------- /assets/styles/adaptive/light.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/adaptive/light.scss -------------------------------------------------------------------------------- /assets/styles/authoring/admin.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/authoring/admin.scss -------------------------------------------------------------------------------- /assets/styles/authoring/dialog.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/authoring/dialog.scss -------------------------------------------------------------------------------- /assets/styles/authoring/figure.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/authoring/figure.scss -------------------------------------------------------------------------------- /assets/styles/authoring/index.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/authoring/index.scss -------------------------------------------------------------------------------- /assets/styles/authoring/institutions.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/styles/authoring/modal.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/authoring/modal.scss -------------------------------------------------------------------------------- /assets/styles/authoring/tree.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/authoring/tree.scss -------------------------------------------------------------------------------- /assets/styles/authoring/typography.scss: -------------------------------------------------------------------------------- 1 | h4 { 2 | font-weight: 300; 3 | } -------------------------------------------------------------------------------- /assets/styles/common/branding.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/branding.scss -------------------------------------------------------------------------------- /assets/styles/common/callout.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/callout.scss -------------------------------------------------------------------------------- /assets/styles/common/card-link.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/card-link.scss -------------------------------------------------------------------------------- /assets/styles/common/changes.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/changes.scss -------------------------------------------------------------------------------- /assets/styles/common/controls.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/controls.scss -------------------------------------------------------------------------------- /assets/styles/common/elements.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/elements.scss -------------------------------------------------------------------------------- /assets/styles/common/help.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/help.scss -------------------------------------------------------------------------------- /assets/styles/common/index.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/index.scss -------------------------------------------------------------------------------- /assets/styles/common/list.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/list.scss -------------------------------------------------------------------------------- /assets/styles/common/main.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/main.scss -------------------------------------------------------------------------------- /assets/styles/common/mixins.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/mixins.scss -------------------------------------------------------------------------------- /assets/styles/common/modal.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/modal.scss -------------------------------------------------------------------------------- /assets/styles/common/purpose.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/purpose.scss -------------------------------------------------------------------------------- /assets/styles/common/survey.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/survey.scss -------------------------------------------------------------------------------- /assets/styles/common/user.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/user.scss -------------------------------------------------------------------------------- /assets/styles/common/utils.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/utils.scss -------------------------------------------------------------------------------- /assets/styles/common/video.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/common/video.scss -------------------------------------------------------------------------------- /assets/styles/components/index.scss: -------------------------------------------------------------------------------- 1 | @import 'hierarchy_selector.scss'; 2 | -------------------------------------------------------------------------------- /assets/styles/delivery/index.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/delivery/index.scss -------------------------------------------------------------------------------- /assets/styles/delivery/mixins.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/delivery/mixins.scss -------------------------------------------------------------------------------- /assets/styles/delivery/page_delivery/after_finalized.scss: -------------------------------------------------------------------------------- 1 | .after-finalized { 2 | margin-top: 50px; 3 | } -------------------------------------------------------------------------------- /assets/styles/delivery/phx.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/delivery/phx.scss -------------------------------------------------------------------------------- /assets/styles/index.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/index.scss -------------------------------------------------------------------------------- /assets/styles/preview.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/styles/preview.scss -------------------------------------------------------------------------------- /assets/tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tailwind.config.js -------------------------------------------------------------------------------- /assets/tailwind.plugins.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tailwind.plugins.js -------------------------------------------------------------------------------- /assets/tailwind.theme.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tailwind.theme.js -------------------------------------------------------------------------------- /assets/tailwind.tokens.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tailwind.tokens.js -------------------------------------------------------------------------------- /assets/test-report.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test-report.html -------------------------------------------------------------------------------- /assets/test/activities/stem_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/activities/stem_test.ts -------------------------------------------------------------------------------- /assets/test/utils/activity_mocks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/utils/activity_mocks.ts -------------------------------------------------------------------------------- /assets/test/utils/common_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/utils/common_test.ts -------------------------------------------------------------------------------- /assets/test/utils/date_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/utils/date_test.ts -------------------------------------------------------------------------------- /assets/test/utils/decoding_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/utils/decoding_test.ts -------------------------------------------------------------------------------- /assets/test/utils/editor_test.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/utils/editor_test.tsx -------------------------------------------------------------------------------- /assets/test/utils/number_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/utils/number_test.ts -------------------------------------------------------------------------------- /assets/test/writer/writer_test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/test/writer/writer_test.ts -------------------------------------------------------------------------------- /assets/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tsconfig.json -------------------------------------------------------------------------------- /assets/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tsconfig.node.json -------------------------------------------------------------------------------- /assets/tsconfig.sdk.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tsconfig.sdk.json -------------------------------------------------------------------------------- /assets/tslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/tslint.json -------------------------------------------------------------------------------- /assets/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/webpack.config.js -------------------------------------------------------------------------------- /assets/webpack.config.node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/webpack.config.node.js -------------------------------------------------------------------------------- /assets/webpack.config.sdk.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/webpack.config.sdk.js -------------------------------------------------------------------------------- /assets/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/assets/yarn.lock -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/config/config.exs -------------------------------------------------------------------------------- /config/dev.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/config/dev.exs -------------------------------------------------------------------------------- /config/prod.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/config/prod.exs -------------------------------------------------------------------------------- /config/runtime.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/config/runtime.exs -------------------------------------------------------------------------------- /config/test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/config/test.exs -------------------------------------------------------------------------------- /configure-env-for-compose.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/configure-env-for-compose.sh -------------------------------------------------------------------------------- /coveralls.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/coveralls.json -------------------------------------------------------------------------------- /dangerfile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/dangerfile.ts -------------------------------------------------------------------------------- /devmode.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/devmode.sh -------------------------------------------------------------------------------- /devops/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/devops/README.md -------------------------------------------------------------------------------- /devops/default.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/devops/default.env -------------------------------------------------------------------------------- /devops/k8s/rbac/pr-admin.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/devops/k8s/rbac/pr-admin.yaml -------------------------------------------------------------------------------- /devops/kustomize/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/devops/kustomize/README.md -------------------------------------------------------------------------------- /devops/kustomize/base/app.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/devops/kustomize/base/app.env -------------------------------------------------------------------------------- /devops/kustomize/base/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: app 5 | -------------------------------------------------------------------------------- /doc_assets/conceptual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/doc_assets/conceptual.png -------------------------------------------------------------------------------- /doc_assets/ingest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/doc_assets/ingest.png -------------------------------------------------------------------------------- /doc_assets/locking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/doc_assets/locking.png -------------------------------------------------------------------------------- /doc_assets/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/doc_assets/message.png -------------------------------------------------------------------------------- /doc_assets/pub-er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/doc_assets/pub-er.png -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/README.md -------------------------------------------------------------------------------- /docs/features/canary/fdd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/canary/fdd.md -------------------------------------------------------------------------------- /docs/features/canary/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/canary/plan.md -------------------------------------------------------------------------------- /docs/features/canary/prd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/canary/prd.md -------------------------------------------------------------------------------- /docs/features/docs_import/fdd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/docs_import/fdd.md -------------------------------------------------------------------------------- /docs/features/docs_import/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/docs_import/plan.md -------------------------------------------------------------------------------- /docs/features/docs_import/prd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/docs_import/prd.md -------------------------------------------------------------------------------- /docs/features/refactor_remix/fdd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/refactor_remix/fdd.md -------------------------------------------------------------------------------- /docs/features/refactor_remix/prd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/features/refactor_remix/prd.md -------------------------------------------------------------------------------- /docs/images/add_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/add_app.png -------------------------------------------------------------------------------- /docs/images/add_external_tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/add_external_tool.png -------------------------------------------------------------------------------- /docs/images/admin_all_accounts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/admin_all_accounts.png -------------------------------------------------------------------------------- /docs/images/client_id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/client_id.png -------------------------------------------------------------------------------- /docs/images/deployment_id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/deployment_id.png -------------------------------------------------------------------------------- /docs/images/developer_keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/developer_keys.png -------------------------------------------------------------------------------- /docs/images/developer_keys_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/developer_keys_link.png -------------------------------------------------------------------------------- /docs/images/institution_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/institution_example.png -------------------------------------------------------------------------------- /docs/images/institution_request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/institution_request.png -------------------------------------------------------------------------------- /docs/images/institutions_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/institutions_link.png -------------------------------------------------------------------------------- /docs/images/key_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/key_settings.png -------------------------------------------------------------------------------- /docs/images/on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/on.png -------------------------------------------------------------------------------- /docs/images/settings_add_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/settings_add_app.png -------------------------------------------------------------------------------- /docs/images/settings_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/images/settings_link.png -------------------------------------------------------------------------------- /docs/preview-environments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/docs/preview-environments.md -------------------------------------------------------------------------------- /guides/activities/overview.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/activities/overview.md -------------------------------------------------------------------------------- /guides/activities/structures.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /guides/design/attempt-handling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/attempt-handling.md -------------------------------------------------------------------------------- /guides/design/attempt.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/attempt.md -------------------------------------------------------------------------------- /guides/design/gdpr.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/gdpr.md -------------------------------------------------------------------------------- /guides/design/genai.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/genai.md -------------------------------------------------------------------------------- /guides/design/high-level.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/high-level.md -------------------------------------------------------------------------------- /guides/design/introduction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/introduction.md -------------------------------------------------------------------------------- /guides/design/locking.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/locking.md -------------------------------------------------------------------------------- /guides/design/locking.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/locking.txt -------------------------------------------------------------------------------- /guides/design/misc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/misc.md -------------------------------------------------------------------------------- /guides/design/page-model.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/page-model.md -------------------------------------------------------------------------------- /guides/design/publication-model.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/design/publication-model.md -------------------------------------------------------------------------------- /guides/ingest/media.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/ingest/media.md -------------------------------------------------------------------------------- /guides/ingest/overview.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/ingest/overview.md -------------------------------------------------------------------------------- /guides/lti/config.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/lti/config.md -------------------------------------------------------------------------------- /guides/lti/implementing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/lti/implementing.md -------------------------------------------------------------------------------- /guides/process/building.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/building.md -------------------------------------------------------------------------------- /guides/process/changelog-pr.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/changelog-pr.md -------------------------------------------------------------------------------- /guides/process/claude-code.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/claude-code.md -------------------------------------------------------------------------------- /guides/process/client-coding.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/client-coding.md -------------------------------------------------------------------------------- /guides/process/deployment.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/deployment.md -------------------------------------------------------------------------------- /guides/process/pr-template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/pr-template.md -------------------------------------------------------------------------------- /guides/process/server-coding.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/process/server-coding.md -------------------------------------------------------------------------------- /guides/starting/developer.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/starting/developer.md -------------------------------------------------------------------------------- /guides/starting/end-user.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/starting/end-user.md -------------------------------------------------------------------------------- /guides/starting/self-hosted.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/starting/self-hosted.md -------------------------------------------------------------------------------- /guides/upgrade/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/upgrade/.env.example -------------------------------------------------------------------------------- /guides/upgrade/dev-env.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/guides/upgrade/dev-env.md -------------------------------------------------------------------------------- /lib/mix/tasks/app/version.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/mix/tasks/app/version.ex -------------------------------------------------------------------------------- /lib/mix/tasks/scenarios.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/mix/tasks/scenarios.ex -------------------------------------------------------------------------------- /lib/oli.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli.ex -------------------------------------------------------------------------------- /lib/oli/accounts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts.ex -------------------------------------------------------------------------------- /lib/oli/accounts/author_notifier.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts/author_notifier.ex -------------------------------------------------------------------------------- /lib/oli/accounts/author_token.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts/author_token.ex -------------------------------------------------------------------------------- /lib/oli/accounts/schemas/author.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts/schemas/author.ex -------------------------------------------------------------------------------- /lib/oli/accounts/schemas/user.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts/schemas/user.ex -------------------------------------------------------------------------------- /lib/oli/accounts/user_notifier.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts/user_notifier.ex -------------------------------------------------------------------------------- /lib/oli/accounts/user_token.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/accounts/user_token.ex -------------------------------------------------------------------------------- /lib/oli/activities.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities.ex -------------------------------------------------------------------------------- /lib/oli/activities/manifest.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/manifest.ex -------------------------------------------------------------------------------- /lib/oli/activities/mode_spec.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/mode_spec.ex -------------------------------------------------------------------------------- /lib/oli/activities/model.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/model.ex -------------------------------------------------------------------------------- /lib/oli/activities/model/hint.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/model/hint.ex -------------------------------------------------------------------------------- /lib/oli/activities/model/part.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/model/part.ex -------------------------------------------------------------------------------- /lib/oli/activities/model/trigger.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/model/trigger.ex -------------------------------------------------------------------------------- /lib/oli/activities/parse_utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/parse_utils.ex -------------------------------------------------------------------------------- /lib/oli/activities/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/state.ex -------------------------------------------------------------------------------- /lib/oli/activities/transformers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/activities/transformers.ex -------------------------------------------------------------------------------- /lib/oli/analytics/common.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/common.ex -------------------------------------------------------------------------------- /lib/oli/analytics/datasets.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/datasets.ex -------------------------------------------------------------------------------- /lib/oli/analytics/datasets/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/datasets/utils.ex -------------------------------------------------------------------------------- /lib/oli/analytics/event_emitter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/event_emitter.ex -------------------------------------------------------------------------------- /lib/oli/analytics/summary.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/summary.ex -------------------------------------------------------------------------------- /lib/oli/analytics/xapi.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/xapi.ex -------------------------------------------------------------------------------- /lib/oli/analytics/xapi/uploader.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/xapi/uploader.ex -------------------------------------------------------------------------------- /lib/oli/analytics/xapi/utis.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/analytics/xapi/utis.ex -------------------------------------------------------------------------------- /lib/oli/application.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/application.ex -------------------------------------------------------------------------------- /lib/oli/assent_auth.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/assent_auth.ex -------------------------------------------------------------------------------- /lib/oli/auditing.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/auditing.ex -------------------------------------------------------------------------------- /lib/oli/auditing/browse_options.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/auditing/browse_options.ex -------------------------------------------------------------------------------- /lib/oli/auditing/log_event.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/auditing/log_event.ex -------------------------------------------------------------------------------- /lib/oli/authoring.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring.ex -------------------------------------------------------------------------------- /lib/oli/authoring/clone.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/clone.ex -------------------------------------------------------------------------------- /lib/oli/authoring/collaborators.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/collaborators.ex -------------------------------------------------------------------------------- /lib/oli/authoring/course.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/course.ex -------------------------------------------------------------------------------- /lib/oli/authoring/course/family.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/course/family.ex -------------------------------------------------------------------------------- /lib/oli/authoring/course/project.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/course/project.ex -------------------------------------------------------------------------------- /lib/oli/authoring/editing/util.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/editing/util.ex -------------------------------------------------------------------------------- /lib/oli/authoring/experiments.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/experiments.ex -------------------------------------------------------------------------------- /lib/oli/authoring/locks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/locks.ex -------------------------------------------------------------------------------- /lib/oli/authoring/media_library.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/media_library.ex -------------------------------------------------------------------------------- /lib/oli/authoring/project_search.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/authoring/project_search.ex -------------------------------------------------------------------------------- /lib/oli/automation_setup.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/automation_setup.ex -------------------------------------------------------------------------------- /lib/oli/branding.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/branding.ex -------------------------------------------------------------------------------- /lib/oli/branding/brand.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/branding/brand.ex -------------------------------------------------------------------------------- /lib/oli/branding/custom_labels.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/branding/custom_labels.ex -------------------------------------------------------------------------------- /lib/oli/cldr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/cldr.ex -------------------------------------------------------------------------------- /lib/oli/consent.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/consent.ex -------------------------------------------------------------------------------- /lib/oli/consent/cookies_consent.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/consent/cookies_consent.ex -------------------------------------------------------------------------------- /lib/oli/constellation.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/constellation.ex -------------------------------------------------------------------------------- /lib/oli/conversation.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/conversation.ex -------------------------------------------------------------------------------- /lib/oli/conversation/trigger.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/conversation/trigger.ex -------------------------------------------------------------------------------- /lib/oli/conversation/triggers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/conversation/triggers.ex -------------------------------------------------------------------------------- /lib/oli/date.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/date.ex -------------------------------------------------------------------------------- /lib/oli/datetime.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/datetime.ex -------------------------------------------------------------------------------- /lib/oli/delivery.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery.ex -------------------------------------------------------------------------------- /lib/oli/delivery/attempts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/attempts.ex -------------------------------------------------------------------------------- /lib/oli/delivery/attempts/core.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/attempts/core.ex -------------------------------------------------------------------------------- /lib/oli/delivery/audience.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/audience.ex -------------------------------------------------------------------------------- /lib/oli/delivery/certificates.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/certificates.ex -------------------------------------------------------------------------------- /lib/oli/delivery/delivery_policy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/delivery_policy.ex -------------------------------------------------------------------------------- /lib/oli/delivery/depot.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/depot.ex -------------------------------------------------------------------------------- /lib/oli/delivery/depot_warmer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/depot_warmer.ex -------------------------------------------------------------------------------- /lib/oli/delivery/evaluation.ex: -------------------------------------------------------------------------------- 1 | defmodule Oli.Delivery.Evaluation do 2 | end 3 | -------------------------------------------------------------------------------- /lib/oli/delivery/evaluation/rule.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/evaluation/rule.ex -------------------------------------------------------------------------------- /lib/oli/delivery/experiments.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/experiments.ex -------------------------------------------------------------------------------- /lib/oli/delivery/extrinsic_state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/extrinsic_state.ex -------------------------------------------------------------------------------- /lib/oli/delivery/gating.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/gating.ex -------------------------------------------------------------------------------- /lib/oli/delivery/hierarchy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/hierarchy.ex -------------------------------------------------------------------------------- /lib/oli/delivery/metrics.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/metrics.ex -------------------------------------------------------------------------------- /lib/oli/delivery/paywall.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/paywall.ex -------------------------------------------------------------------------------- /lib/oli/delivery/paywall/payment.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/paywall/payment.ex -------------------------------------------------------------------------------- /lib/oli/delivery/remix.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/remix.ex -------------------------------------------------------------------------------- /lib/oli/delivery/remix/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/remix/state.ex -------------------------------------------------------------------------------- /lib/oli/delivery/sections.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/sections.ex -------------------------------------------------------------------------------- /lib/oli/delivery/sections/browse.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/sections/browse.ex -------------------------------------------------------------------------------- /lib/oli/delivery/settings.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/settings.ex -------------------------------------------------------------------------------- /lib/oli/delivery/snapshots.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/snapshots.ex -------------------------------------------------------------------------------- /lib/oli/delivery/text_blob.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/text_blob.ex -------------------------------------------------------------------------------- /lib/oli/delivery/transfer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/transfer.ex -------------------------------------------------------------------------------- /lib/oli/delivery/updates/worker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/updates/worker.ex -------------------------------------------------------------------------------- /lib/oli/delivery/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/delivery/utils.ex -------------------------------------------------------------------------------- /lib/oli/email.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/email.ex -------------------------------------------------------------------------------- /lib/oli/encrypted/binary.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/encrypted/binary.ex -------------------------------------------------------------------------------- /lib/oli/feature_gate.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/feature_gate.ex -------------------------------------------------------------------------------- /lib/oli/feature_telemetry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/feature_telemetry.ex -------------------------------------------------------------------------------- /lib/oli/features.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/features.ex -------------------------------------------------------------------------------- /lib/oli/features/feature.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/features/feature.ex -------------------------------------------------------------------------------- /lib/oli/features/feature_state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/features/feature_state.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/critic.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/critic.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/decision.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/decision.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/demo_policy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/demo_policy.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/llm_bridge.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/llm_bridge.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/patcher.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/patcher.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/persistence.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/persistence.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/policy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/policy.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/pub_sub.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/pub_sub.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/registry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/registry.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/server.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/server.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/summarizer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/summarizer.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/tool.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/tool.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/agent/tool_broker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/agent/tool_broker.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/completions.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/completions.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/completions/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/completions/utils.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/dialogue/server.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/dialogue/server.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/dialogue/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/dialogue/state.ex -------------------------------------------------------------------------------- /lib/oli/gen_ai/feature_config.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/gen_ai/feature_config.ex -------------------------------------------------------------------------------- /lib/oli/google_docs/client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/google_docs/client.ex -------------------------------------------------------------------------------- /lib/oli/google_docs/import.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/google_docs/import.ex -------------------------------------------------------------------------------- /lib/oli/google_docs/mcq_builder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/google_docs/mcq_builder.ex -------------------------------------------------------------------------------- /lib/oli/google_docs/warnings.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/google_docs/warnings.ex -------------------------------------------------------------------------------- /lib/oli/grading.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/grading.ex -------------------------------------------------------------------------------- /lib/oli/grading/gradebook_row.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/grading/gradebook_row.ex -------------------------------------------------------------------------------- /lib/oli/grading/gradebook_score.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/grading/gradebook_score.ex -------------------------------------------------------------------------------- /lib/oli/groups.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/groups.ex -------------------------------------------------------------------------------- /lib/oli/groups/community.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/groups/community.ex -------------------------------------------------------------------------------- /lib/oli/groups/community_account.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/groups/community_account.ex -------------------------------------------------------------------------------- /lib/oli/help/course_data.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/help/course_data.ex -------------------------------------------------------------------------------- /lib/oli/help/dispatcher.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/help/dispatcher.ex -------------------------------------------------------------------------------- /lib/oli/help/help_content.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/help/help_content.ex -------------------------------------------------------------------------------- /lib/oli/help/help_request.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/help/help_request.ex -------------------------------------------------------------------------------- /lib/oli/help/requester_data.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/help/requester_data.ex -------------------------------------------------------------------------------- /lib/oli/http.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/http.ex -------------------------------------------------------------------------------- /lib/oli/institutions.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/institutions.ex -------------------------------------------------------------------------------- /lib/oli/institutions/institution.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/institutions/institution.ex -------------------------------------------------------------------------------- /lib/oli/institutions/sso_jwks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/institutions/sso_jwks.ex -------------------------------------------------------------------------------- /lib/oli/interop.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop.ex -------------------------------------------------------------------------------- /lib/oli/interop/api_key.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/api_key.ex -------------------------------------------------------------------------------- /lib/oli/interop/export.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/export.ex -------------------------------------------------------------------------------- /lib/oli/interop/ingest.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/ingest.ex -------------------------------------------------------------------------------- /lib/oli/interop/ingest/processor.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/ingest/processor.ex -------------------------------------------------------------------------------- /lib/oli/interop/ingest/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/ingest/state.ex -------------------------------------------------------------------------------- /lib/oli/interop/legacy_support.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/legacy_support.ex -------------------------------------------------------------------------------- /lib/oli/interop/rewire_links.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/rewire_links.ex -------------------------------------------------------------------------------- /lib/oli/interop/scrub.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/interop/scrub.ex -------------------------------------------------------------------------------- /lib/oli/inventories.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/inventories.ex -------------------------------------------------------------------------------- /lib/oli/inventories/publisher.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/inventories/publisher.ex -------------------------------------------------------------------------------- /lib/oli/log_incomplete_request.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/log_incomplete_request.ex -------------------------------------------------------------------------------- /lib/oli/logger_truncator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/logger_truncator.ex -------------------------------------------------------------------------------- /lib/oli/lti/access_token_adapter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/access_token_adapter.ex -------------------------------------------------------------------------------- /lib/oli/lti/access_token_library.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/access_token_library.ex -------------------------------------------------------------------------------- /lib/oli/lti/access_token_test.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/access_token_test.ex -------------------------------------------------------------------------------- /lib/oli/lti/deployment.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/deployment.ex -------------------------------------------------------------------------------- /lib/oli/lti/lti_params.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/lti_params.ex -------------------------------------------------------------------------------- /lib/oli/lti/platform_instances.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/platform_instances.ex -------------------------------------------------------------------------------- /lib/oli/lti/registration.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/registration.ex -------------------------------------------------------------------------------- /lib/oli/lti/tokens.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/lti/tokens.ex -------------------------------------------------------------------------------- /lib/oli/mailer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mailer.ex -------------------------------------------------------------------------------- /lib/oli/mailer/send_email_worker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mailer/send_email_worker.ex -------------------------------------------------------------------------------- /lib/oli/mcp/auth.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mcp/auth.ex -------------------------------------------------------------------------------- /lib/oli/mcp/auth/authorization.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mcp/auth/authorization.ex -------------------------------------------------------------------------------- /lib/oli/mcp/auth/bearer_token.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mcp/auth/bearer_token.ex -------------------------------------------------------------------------------- /lib/oli/mcp/auth/token_generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mcp/auth/token_generator.ex -------------------------------------------------------------------------------- /lib/oli/mcp/server.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mcp/server.ex -------------------------------------------------------------------------------- /lib/oli/mcp/usage_tracker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/mcp/usage_tracker.ex -------------------------------------------------------------------------------- /lib/oli/notifications.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/notifications.ex -------------------------------------------------------------------------------- /lib/oli/notifications/pub_sub.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/notifications/pub_sub.ex -------------------------------------------------------------------------------- /lib/oli/notifications/worker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/notifications/worker.ex -------------------------------------------------------------------------------- /lib/oli/open_ai/client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/open_ai/client.ex -------------------------------------------------------------------------------- /lib/oli/part_components.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/part_components.ex -------------------------------------------------------------------------------- /lib/oli/predefined.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/predefined.ex -------------------------------------------------------------------------------- /lib/oli/publishing.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/publishing.ex -------------------------------------------------------------------------------- /lib/oli/publishing/resolver.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/publishing/resolver.ex -------------------------------------------------------------------------------- /lib/oli/publishing/tracker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/publishing/tracker.ex -------------------------------------------------------------------------------- /lib/oli/publishing/unique_ids.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/publishing/unique_ids.ex -------------------------------------------------------------------------------- /lib/oli/qa.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa.ex -------------------------------------------------------------------------------- /lib/oli/qa/review.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/review.ex -------------------------------------------------------------------------------- /lib/oli/qa/reviewers/content.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/reviewers/content.ex -------------------------------------------------------------------------------- /lib/oli/qa/reviewers/equity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/reviewers/equity.ex -------------------------------------------------------------------------------- /lib/oli/qa/reviewers/pedagogy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/reviewers/pedagogy.ex -------------------------------------------------------------------------------- /lib/oli/qa/reviews.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/reviews.ex -------------------------------------------------------------------------------- /lib/oli/qa/uri_validator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/uri_validator.ex -------------------------------------------------------------------------------- /lib/oli/qa/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/utils.ex -------------------------------------------------------------------------------- /lib/oli/qa/warning.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/warning.ex -------------------------------------------------------------------------------- /lib/oli/qa/warnings.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/qa/warnings.ex -------------------------------------------------------------------------------- /lib/oli/recaptcha.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/recaptcha.ex -------------------------------------------------------------------------------- /lib/oli/registrar.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/registrar.ex -------------------------------------------------------------------------------- /lib/oli/release.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/release.ex -------------------------------------------------------------------------------- /lib/oli/rendering.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering.ex -------------------------------------------------------------------------------- /lib/oli/rendering/activity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/activity.ex -------------------------------------------------------------------------------- /lib/oli/rendering/activity/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/activity/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/alternatives.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/alternatives.ex -------------------------------------------------------------------------------- /lib/oli/rendering/break.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/break.ex -------------------------------------------------------------------------------- /lib/oli/rendering/break/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/break/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/break/markdown.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/break/markdown.ex -------------------------------------------------------------------------------- /lib/oli/rendering/content.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/content.ex -------------------------------------------------------------------------------- /lib/oli/rendering/content/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/content/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/context.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/context.ex -------------------------------------------------------------------------------- /lib/oli/rendering/elements.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/elements.ex -------------------------------------------------------------------------------- /lib/oli/rendering/elements/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/elements/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/error.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/error.ex -------------------------------------------------------------------------------- /lib/oli/rendering/error/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/error/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/error/markdown.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/error/markdown.ex -------------------------------------------------------------------------------- /lib/oli/rendering/group.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/group.ex -------------------------------------------------------------------------------- /lib/oli/rendering/group/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/group/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/group/markdown.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/group/markdown.ex -------------------------------------------------------------------------------- /lib/oli/rendering/page.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/page.ex -------------------------------------------------------------------------------- /lib/oli/rendering/page/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/page/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/page/markdown.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/page/markdown.ex -------------------------------------------------------------------------------- /lib/oli/rendering/page/plaintext.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/page/plaintext.ex -------------------------------------------------------------------------------- /lib/oli/rendering/report.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/report.ex -------------------------------------------------------------------------------- /lib/oli/rendering/report/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/report/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/survey.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/survey.ex -------------------------------------------------------------------------------- /lib/oli/rendering/survey/html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/survey/html.ex -------------------------------------------------------------------------------- /lib/oli/rendering/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/rendering/utils.ex -------------------------------------------------------------------------------- /lib/oli/repo.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/repo.ex -------------------------------------------------------------------------------- /lib/oli/repo/paging.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/repo/paging.ex -------------------------------------------------------------------------------- /lib/oli/repo/sorting.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/repo/sorting.ex -------------------------------------------------------------------------------- /lib/oli/resources.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources.ex -------------------------------------------------------------------------------- /lib/oli/resources/alternatives.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/alternatives.ex -------------------------------------------------------------------------------- /lib/oli/resources/collaboration.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/collaboration.ex -------------------------------------------------------------------------------- /lib/oli/resources/legacy.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/legacy.ex -------------------------------------------------------------------------------- /lib/oli/resources/numbering.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/numbering.ex -------------------------------------------------------------------------------- /lib/oli/resources/page_browse.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/page_browse.ex -------------------------------------------------------------------------------- /lib/oli/resources/page_content.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/page_content.ex -------------------------------------------------------------------------------- /lib/oli/resources/resource.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/resource.ex -------------------------------------------------------------------------------- /lib/oli/resources/resource_type.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/resource_type.ex -------------------------------------------------------------------------------- /lib/oli/resources/revision.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/resources/revision.ex -------------------------------------------------------------------------------- /lib/oli/scenarios.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios.ex -------------------------------------------------------------------------------- /lib/oli/scenarios/builder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios/builder.ex -------------------------------------------------------------------------------- /lib/oli/scenarios/engine.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios/engine.ex -------------------------------------------------------------------------------- /lib/oli/scenarios/hooks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios/hooks.ex -------------------------------------------------------------------------------- /lib/oli/scenarios/ops.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios/ops.ex -------------------------------------------------------------------------------- /lib/oli/scenarios/section_ops.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios/section_ops.ex -------------------------------------------------------------------------------- /lib/oli/scenarios/types.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scenarios/types.ex -------------------------------------------------------------------------------- /lib/oli/scoped_feature_flags.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/scoped_feature_flags.ex -------------------------------------------------------------------------------- /lib/oli/search.ex: -------------------------------------------------------------------------------- 1 | defmodule Oli.Search do 2 | end 3 | -------------------------------------------------------------------------------- /lib/oli/search/embedding_worker.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/search/embedding_worker.ex -------------------------------------------------------------------------------- /lib/oli/search/embeddings.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/search/embeddings.ex -------------------------------------------------------------------------------- /lib/oli/search/markdown_renderer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/search/markdown_renderer.ex -------------------------------------------------------------------------------- /lib/oli/search/updater.ex: -------------------------------------------------------------------------------- 1 | defmodule Oli.Search.EmbeddingsUpdate do 2 | end 3 | -------------------------------------------------------------------------------- /lib/oli/slack.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/slack.ex -------------------------------------------------------------------------------- /lib/oli/tags.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/tags.ex -------------------------------------------------------------------------------- /lib/oli/tags/project_tag.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/tags/project_tag.ex -------------------------------------------------------------------------------- /lib/oli/tags/section_tag.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/tags/section_tag.ex -------------------------------------------------------------------------------- /lib/oli/tags/tag.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/tags/tag.ex -------------------------------------------------------------------------------- /lib/oli/timing.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/timing.ex -------------------------------------------------------------------------------- /lib/oli/torus_doc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/torus_doc.ex -------------------------------------------------------------------------------- /lib/oli/torus_doc/clone_demo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/torus_doc/clone_demo.exs -------------------------------------------------------------------------------- /lib/oli/torus_doc/mcq_demo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/torus_doc/mcq_demo.exs -------------------------------------------------------------------------------- /lib/oli/torus_doc/page_converter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/torus_doc/page_converter.ex -------------------------------------------------------------------------------- /lib/oli/torus_doc/page_parser.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/torus_doc/page_parser.ex -------------------------------------------------------------------------------- /lib/oli/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils.ex -------------------------------------------------------------------------------- /lib/oli/utils/appsignal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/appsignal.ex -------------------------------------------------------------------------------- /lib/oli/utils/autoretry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/autoretry.ex -------------------------------------------------------------------------------- /lib/oli/utils/bib_utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/bib_utils.ex -------------------------------------------------------------------------------- /lib/oli/utils/database.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/database.ex -------------------------------------------------------------------------------- /lib/oli/utils/db_seeder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/db_seeder.ex -------------------------------------------------------------------------------- /lib/oli/utils/flame_graph.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/flame_graph.ex -------------------------------------------------------------------------------- /lib/oli/utils/load_testing.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/load_testing.ex -------------------------------------------------------------------------------- /lib/oli/utils/purposes.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/purposes.ex -------------------------------------------------------------------------------- /lib/oli/utils/recaptcha.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/recaptcha.ex -------------------------------------------------------------------------------- /lib/oli/utils/s3_storage.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/s3_storage.ex -------------------------------------------------------------------------------- /lib/oli/utils/schema_resolver.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/schema_resolver.ex -------------------------------------------------------------------------------- /lib/oli/utils/seeder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/seeder.ex -------------------------------------------------------------------------------- /lib/oli/utils/seeder/attempt.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/seeder/attempt.ex -------------------------------------------------------------------------------- /lib/oli/utils/seeder/project.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/seeder/project.ex -------------------------------------------------------------------------------- /lib/oli/utils/seeder/section.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/seeder/section.ex -------------------------------------------------------------------------------- /lib/oli/utils/seeder/session.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/seeder/session.ex -------------------------------------------------------------------------------- /lib/oli/utils/seeder/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/seeder/utils.ex -------------------------------------------------------------------------------- /lib/oli/utils/slug.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/slug.ex -------------------------------------------------------------------------------- /lib/oli/utils/stagehand.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/stagehand.ex -------------------------------------------------------------------------------- /lib/oli/utils/time.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/utils/time.ex -------------------------------------------------------------------------------- /lib/oli/validation.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/validation.ex -------------------------------------------------------------------------------- /lib/oli/vault.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/vault.ex -------------------------------------------------------------------------------- /lib/oli/vendor_properties.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/vendor_properties.ex -------------------------------------------------------------------------------- /lib/oli/vr_lookup_cache.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/vr_lookup_cache.ex -------------------------------------------------------------------------------- /lib/oli/vr_user_agents.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli/vr_user_agents.ex -------------------------------------------------------------------------------- /lib/oli_web.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web.ex -------------------------------------------------------------------------------- /lib/oli_web/admin/browse_filters.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/admin/browse_filters.ex -------------------------------------------------------------------------------- /lib/oli_web/api_spec.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/api_spec.ex -------------------------------------------------------------------------------- /lib/oli_web/author_auth.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/author_auth.ex -------------------------------------------------------------------------------- /lib/oli_web/backgrounds.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/backgrounds.ex -------------------------------------------------------------------------------- /lib/oli_web/cache_body_reader.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/cache_body_reader.ex -------------------------------------------------------------------------------- /lib/oli_web/channels/user_socket.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/channels/user_socket.ex -------------------------------------------------------------------------------- /lib/oli_web/common/breadcrumb.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/common/breadcrumb.ex -------------------------------------------------------------------------------- /lib/oli_web/common/links.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/common/links.ex -------------------------------------------------------------------------------- /lib/oli_web/common/params.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/common/params.ex -------------------------------------------------------------------------------- /lib/oli_web/common/react.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/common/react.ex -------------------------------------------------------------------------------- /lib/oli_web/common/source_image.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/common/source_image.ex -------------------------------------------------------------------------------- /lib/oli_web/components/auth.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/auth.ex -------------------------------------------------------------------------------- /lib/oli_web/components/common.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/common.ex -------------------------------------------------------------------------------- /lib/oli_web/components/footer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/footer.ex -------------------------------------------------------------------------------- /lib/oli_web/components/header.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/header.ex -------------------------------------------------------------------------------- /lib/oli_web/components/layouts.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/layouts.ex -------------------------------------------------------------------------------- /lib/oli_web/components/modal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/modal.ex -------------------------------------------------------------------------------- /lib/oli_web/components/timezone.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/timezone.ex -------------------------------------------------------------------------------- /lib/oli_web/components/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/components/utils.ex -------------------------------------------------------------------------------- /lib/oli_web/controllers/lti_html.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/controllers/lti_html.ex -------------------------------------------------------------------------------- /lib/oli_web/delegated_events.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/delegated_events.ex -------------------------------------------------------------------------------- /lib/oli_web/delivery_web.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/delivery_web.ex -------------------------------------------------------------------------------- /lib/oli_web/endpoint.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/endpoint.ex -------------------------------------------------------------------------------- /lib/oli_web/gettext.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/gettext.ex -------------------------------------------------------------------------------- /lib/oli_web/icons.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/icons.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/check.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/check.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/chip.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/chip.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/filter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/filter.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/listing.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/listing.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/modal.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/modal.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/paging.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/paging.ex -------------------------------------------------------------------------------- /lib/oli_web/live/common/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/common/utils.ex -------------------------------------------------------------------------------- /lib/oli_web/live/dev/icons_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/dev/icons_live.ex -------------------------------------------------------------------------------- /lib/oli_web/live/dev/tokens_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/dev/tokens_live.ex -------------------------------------------------------------------------------- /lib/oli_web/live/grades/export.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/grades/export.ex -------------------------------------------------------------------------------- /lib/oli_web/live/grades/grades.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/grades/grades.ex -------------------------------------------------------------------------------- /lib/oli_web/live/history/details.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/history/details.ex -------------------------------------------------------------------------------- /lib/oli_web/live/history/graph.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/history/graph.ex -------------------------------------------------------------------------------- /lib/oli_web/live/history/table.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/history/table.ex -------------------------------------------------------------------------------- /lib/oli_web/live/ingest/ingestv2.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/ingest/ingestv2.ex -------------------------------------------------------------------------------- /lib/oli_web/live/insights/common.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/insights/common.ex -------------------------------------------------------------------------------- /lib/oli_web/live/products/create.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/products/create.ex -------------------------------------------------------------------------------- /lib/oli_web/live/qa/qa_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/qa/qa_live.ex -------------------------------------------------------------------------------- /lib/oli_web/live/qa/state.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/qa/state.ex -------------------------------------------------------------------------------- /lib/oli_web/live/qa/utils.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/qa/utils.ex -------------------------------------------------------------------------------- /lib/oli_web/live/sections/mount.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/sections/mount.ex -------------------------------------------------------------------------------- /lib/oli_web/live/user_login_live.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/user_login_live.ex -------------------------------------------------------------------------------- /lib/oli_web/live/users/common.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/live/users/common.ex -------------------------------------------------------------------------------- /lib/oli_web/plugs/no_cache.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/plugs/no_cache.ex -------------------------------------------------------------------------------- /lib/oli_web/plugs/redirect.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/plugs/redirect.ex -------------------------------------------------------------------------------- /lib/oli_web/plugs/set_token.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/plugs/set_token.ex -------------------------------------------------------------------------------- /lib/oli_web/plugs/set_user_type.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/plugs/set_user_type.ex -------------------------------------------------------------------------------- /lib/oli_web/plugs/ssl.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/plugs/ssl.ex -------------------------------------------------------------------------------- /lib/oli_web/presence.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/presence.ex -------------------------------------------------------------------------------- /lib/oli_web/router.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/router.ex -------------------------------------------------------------------------------- /lib/oli_web/telemetry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/telemetry.ex -------------------------------------------------------------------------------- /lib/oli_web/templates/email/help_email.html.eex: -------------------------------------------------------------------------------- 1 | <%= raw @message %> 2 | -------------------------------------------------------------------------------- /lib/oli_web/templates/layout/email.text.eex: -------------------------------------------------------------------------------- 1 | <%= @inner_content %> -------------------------------------------------------------------------------- /lib/oli_web/templates/layout/help_email.text.eex: -------------------------------------------------------------------------------- 1 | <%= @inner_content %> -------------------------------------------------------------------------------- /lib/oli_web/templates/layout/live_no_flash.html.heex: -------------------------------------------------------------------------------- 1 | {@inner_content} 2 | -------------------------------------------------------------------------------- /lib/oli_web/templates/payment/new.html.eex: -------------------------------------------------------------------------------- 1 |

TBD

2 | -------------------------------------------------------------------------------- /lib/oli_web/templates/payment_providers/no_provider/index.html.heex: -------------------------------------------------------------------------------- 1 |

Direct payments are not enabled

2 | -------------------------------------------------------------------------------- /lib/oli_web/templates/shared/_blank.html.eex: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/oli_web/user_auth.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/user_auth.ex -------------------------------------------------------------------------------- /lib/oli_web/views/authoring_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/authoring_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/brand_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/brand_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/changeset_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/changeset_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/cognito_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/cognito_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/delivery_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/delivery_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/dev/dev_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/dev/dev_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/email_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/email_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/error_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/error_helpers.ex -------------------------------------------------------------------------------- /lib/oli_web/views/error_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/error_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/help_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/help_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/ingest_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/ingest_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/invite_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/invite_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/layout_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/layout_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/lti_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/lti_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/media_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/media_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/payment_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/payment_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/project_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/project_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/resource_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/resource_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/shared_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/shared_view.ex -------------------------------------------------------------------------------- /lib/oli_web/views/view_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/view_helpers.ex -------------------------------------------------------------------------------- /lib/oli_web/views/workspace_view.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/oli_web/views/workspace_view.ex -------------------------------------------------------------------------------- /lib/postgrex_types.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/lib/postgrex_types.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/mix.lock -------------------------------------------------------------------------------- /oli.example.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/oli.example.env -------------------------------------------------------------------------------- /pgadmin.servers.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/pgadmin.servers.json -------------------------------------------------------------------------------- /postgres.example.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/postgres.example.env -------------------------------------------------------------------------------- /priv/data/oli_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/data/oli_logo.png -------------------------------------------------------------------------------- /priv/data/oli_logo_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/data/oli_logo_dark.png -------------------------------------------------------------------------------- /priv/gettext/default.pot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/gettext/default.pot -------------------------------------------------------------------------------- /priv/gettext/errors.pot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/gettext/errors.pot -------------------------------------------------------------------------------- /priv/gettext/grades.pot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/gettext/grades.pot -------------------------------------------------------------------------------- /priv/repo/migrations/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/repo/migrations/.formatter.exs -------------------------------------------------------------------------------- /priv/repo/seeds.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/repo/seeds.exs -------------------------------------------------------------------------------- /priv/repo/test_snapshots.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/repo/test_snapshots.csv -------------------------------------------------------------------------------- /priv/ssl/localhost.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/ssl/localhost.crt -------------------------------------------------------------------------------- /priv/ssl/localhost.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/priv/ssl/localhost.key -------------------------------------------------------------------------------- /rel/env.bat.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/rel/env.bat.eex -------------------------------------------------------------------------------- /rel/env.sh.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/rel/env.sh.eex -------------------------------------------------------------------------------- /rel/overlays/bin/migrate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/rel/overlays/bin/migrate -------------------------------------------------------------------------------- /rel/overlays/bin/migrate.bat: -------------------------------------------------------------------------------- 1 | call "%~dp0\oli" eval Oli.Release.migrate 2 | -------------------------------------------------------------------------------- /rel/overlays/bin/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/rel/overlays/bin/server -------------------------------------------------------------------------------- /rel/overlays/bin/server.bat: -------------------------------------------------------------------------------- 1 | set PHX_SERVER=true 2 | call "%~dp0\oli" start 3 | -------------------------------------------------------------------------------- /rel/remote.vm.args.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/rel/remote.vm.args.eex -------------------------------------------------------------------------------- /rel/vm.args.eex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/rel/vm.args.eex -------------------------------------------------------------------------------- /seeds.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/seeds.example.json -------------------------------------------------------------------------------- /supervisord.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/supervisord.conf -------------------------------------------------------------------------------- /test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test.json -------------------------------------------------------------------------------- /test/config/cashnet_config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/config/cashnet_config.exs -------------------------------------------------------------------------------- /test/config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/config/config.exs -------------------------------------------------------------------------------- /test/config/stripe_config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/config/stripe_config.exs -------------------------------------------------------------------------------- /test/oli/accounts_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/accounts_test.exs -------------------------------------------------------------------------------- /test/oli/activities/errors.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/activities/errors.json -------------------------------------------------------------------------------- /test/oli/activities/parse_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/activities/parse_test.exs -------------------------------------------------------------------------------- /test/oli/activities/valid.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/activities/valid.json -------------------------------------------------------------------------------- /test/oli/activities_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/activities_test.exs -------------------------------------------------------------------------------- /test/oli/auditing_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/auditing_test.exs -------------------------------------------------------------------------------- /test/oli/branding_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/branding_test.exs -------------------------------------------------------------------------------- /test/oli/clone_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/clone_test.exs -------------------------------------------------------------------------------- /test/oli/conversation_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/conversation_test.exs -------------------------------------------------------------------------------- /test/oli/course_browse_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/course_browse_test.exs -------------------------------------------------------------------------------- /test/oli/course_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/course_test.exs -------------------------------------------------------------------------------- /test/oli/database_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/database_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/attempts_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/attempts_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/audience_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/audience_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/depot_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/depot_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/gating_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/gating_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/hints_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/hints_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/paywall_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/paywall_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/sections_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/sections_test.exs -------------------------------------------------------------------------------- /test/oli/delivery/settings_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery/settings_test.exs -------------------------------------------------------------------------------- /test/oli/delivery_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/delivery_test.exs -------------------------------------------------------------------------------- /test/oli/editing/utils_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/editing/utils_test.exs -------------------------------------------------------------------------------- /test/oli/feature_gate_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/feature_gate_test.exs -------------------------------------------------------------------------------- /test/oli/feature_telemetry_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/feature_telemetry_test.exs -------------------------------------------------------------------------------- /test/oli/features_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/features_test.exs -------------------------------------------------------------------------------- /test/oli/gen_ai_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/gen_ai_test.exs -------------------------------------------------------------------------------- /test/oli/grading_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/grading_test.exs -------------------------------------------------------------------------------- /test/oli/groups/community_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/groups/community_test.exs -------------------------------------------------------------------------------- /test/oli/groups_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/groups_test.exs -------------------------------------------------------------------------------- /test/oli/institutions_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/institutions_test.exs -------------------------------------------------------------------------------- /test/oli/interop/digest/1074.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/1074.json -------------------------------------------------------------------------------- /test/oli/interop/digest/1075.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/1075.json -------------------------------------------------------------------------------- /test/oli/interop/digest/22.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/22.json -------------------------------------------------------------------------------- /test/oli/interop/digest/23.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/23.json -------------------------------------------------------------------------------- /test/oli/interop/digest/25.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/25.json -------------------------------------------------------------------------------- /test/oli/interop/digest/26.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/26.json -------------------------------------------------------------------------------- /test/oli/interop/digest/2689.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/2689.json -------------------------------------------------------------------------------- /test/oli/interop/digest/27.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/27.json -------------------------------------------------------------------------------- /test/oli/interop/digest/28.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/28.json -------------------------------------------------------------------------------- /test/oli/interop/digest/31.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/31.json -------------------------------------------------------------------------------- /test/oli/interop/digest/32.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/32.json -------------------------------------------------------------------------------- /test/oli/interop/digest/35.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/35.json -------------------------------------------------------------------------------- /test/oli/interop/digest/36.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/36.json -------------------------------------------------------------------------------- /test/oli/interop/digest/37.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/37.json -------------------------------------------------------------------------------- /test/oli/interop/digest/39.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/39.json -------------------------------------------------------------------------------- /test/oli/interop/digest/41.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/41.json -------------------------------------------------------------------------------- /test/oli/interop/digest/42.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/42.json -------------------------------------------------------------------------------- /test/oli/interop/digest/43.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/43.json -------------------------------------------------------------------------------- /test/oli/interop/digest/44.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/44.json -------------------------------------------------------------------------------- /test/oli/interop/digest/6533.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/6533.json -------------------------------------------------------------------------------- /test/oli/interop/digest/6534.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/6534.json -------------------------------------------------------------------------------- /test/oli/interop/digest/6535.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/6535.json -------------------------------------------------------------------------------- /test/oli/interop/digest/8.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/8.json -------------------------------------------------------------------------------- /test/oli/interop/digest/8545.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/8545.json -------------------------------------------------------------------------------- /test/oli/interop/digest/89.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/89.json -------------------------------------------------------------------------------- /test/oli/interop/digest/tag1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/tag1.json -------------------------------------------------------------------------------- /test/oli/interop/digest/tag2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/digest/tag2.json -------------------------------------------------------------------------------- /test/oli/interop/export_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/export_test.exs -------------------------------------------------------------------------------- /test/oli/interop/ingest_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/ingest_test.exs -------------------------------------------------------------------------------- /test/oli/interop/scrub_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/interop/scrub_test.exs -------------------------------------------------------------------------------- /test/oli/inventories_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/inventories_test.exs -------------------------------------------------------------------------------- /test/oli/locks_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/locks_test.exs -------------------------------------------------------------------------------- /test/oli/lti_accounts_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/lti_accounts_test.exs -------------------------------------------------------------------------------- /test/oli/major_updates_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/major_updates_test.exs -------------------------------------------------------------------------------- /test/oli/mcp/auth_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/mcp/auth_test.exs -------------------------------------------------------------------------------- /test/oli/mcp/auth_usage_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/mcp/auth_usage_test.exs -------------------------------------------------------------------------------- /test/oli/mcp/security_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/mcp/security_test.exs -------------------------------------------------------------------------------- /test/oli/mcp/server_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/mcp/server_test.exs -------------------------------------------------------------------------------- /test/oli/notifications_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/notifications_test.exs -------------------------------------------------------------------------------- /test/oli/part_components_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/part_components_test.exs -------------------------------------------------------------------------------- /test/oli/publishing/activity.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/publishing/activity.json -------------------------------------------------------------------------------- /test/oli/publishing/page.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/publishing/page.json -------------------------------------------------------------------------------- /test/oli/publishing_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/publishing_test.exs -------------------------------------------------------------------------------- /test/oli/qa/accessibility_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/qa/accessibility_test.exs -------------------------------------------------------------------------------- /test/oli/qa/content_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/qa/content_test.exs -------------------------------------------------------------------------------- /test/oli/qa/pedagogy_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/qa/pedagogy_test.exs -------------------------------------------------------------------------------- /test/oli/registrar_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/registrar_test.exs -------------------------------------------------------------------------------- /test/oli/resources/page.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/resources/page.json -------------------------------------------------------------------------------- /test/oli/resources_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/resources_test.exs -------------------------------------------------------------------------------- /test/oli/scenarios/dsl_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/scenarios/dsl_test.exs -------------------------------------------------------------------------------- /test/oli/scenarios/product_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/scenarios/product_test.exs -------------------------------------------------------------------------------- /test/oli/scenarios/remix_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/scenarios/remix_test.exs -------------------------------------------------------------------------------- /test/oli/scenarios/tags_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/scenarios/tags_test.exs -------------------------------------------------------------------------------- /test/oli/search/embeddings_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/search/embeddings_test.exs -------------------------------------------------------------------------------- /test/oli/section_invites_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/section_invites_test.exs -------------------------------------------------------------------------------- /test/oli/sections_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/sections_test.exs -------------------------------------------------------------------------------- /test/oli/slack_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/slack_test.exs -------------------------------------------------------------------------------- /test/oli/tags_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/tags_test.exs -------------------------------------------------------------------------------- /test/oli/torus_doc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/torus_doc_test.exs -------------------------------------------------------------------------------- /test/oli/utils/slug_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/utils/slug_test.exs -------------------------------------------------------------------------------- /test/oli/utils_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/utils_test.exs -------------------------------------------------------------------------------- /test/oli/validation_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/validation_test.exs -------------------------------------------------------------------------------- /test/oli/vr_user_agents_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli/vr_user_agents_test.exs -------------------------------------------------------------------------------- /test/oli_web/author_auth_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli_web/author_auth_test.exs -------------------------------------------------------------------------------- /test/oli_web/common/utils_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli_web/common/utils_test.exs -------------------------------------------------------------------------------- /test/oli_web/controllers/api/activity/test_test_activity.js: -------------------------------------------------------------------------------- 1 | test; 2 | -------------------------------------------------------------------------------- /test/oli_web/controllers/api/activity/test_test_delivery.js: -------------------------------------------------------------------------------- 1 | test; 2 | -------------------------------------------------------------------------------- /test/oli_web/live/products_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli_web/live/products_test.exs -------------------------------------------------------------------------------- /test/oli_web/live/qa_logic_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli_web/live/qa_logic_test.exs -------------------------------------------------------------------------------- /test/oli_web/user_auth_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/oli_web/user_auth_test.exs -------------------------------------------------------------------------------- /test/run_single_scenario.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/run_single_scenario.exs -------------------------------------------------------------------------------- /test/scenarios/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/scenarios/README.md -------------------------------------------------------------------------------- /test/scenarios/run_all_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/scenarios/run_all_test.exs -------------------------------------------------------------------------------- /test/support/channel_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/channel_case.ex -------------------------------------------------------------------------------- /test/support/conn_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/conn_case.ex -------------------------------------------------------------------------------- /test/support/data_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/data_case.ex -------------------------------------------------------------------------------- /test/support/dataset/python/requirements.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/support/digests/digest_1/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/support/digests/digest_2/_media-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "mediaItems": [] 3 | } -------------------------------------------------------------------------------- /test/support/digests/digest_3/_media-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "mediaItems": [] 3 | } -------------------------------------------------------------------------------- /test/support/digests/digest_5/_media-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "mediaItems": [] 3 | } -------------------------------------------------------------------------------- /test/support/digests/digest_6/_media-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "mediaItems": [] 3 | } -------------------------------------------------------------------------------- /test/support/factory.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/factory.ex -------------------------------------------------------------------------------- /test/support/lti_test_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/lti_test_helpers.ex -------------------------------------------------------------------------------- /test/support/mcp_test_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/mcp_test_helpers.ex -------------------------------------------------------------------------------- /test/support/python_runner.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/python_runner.ex -------------------------------------------------------------------------------- /test/support/scenarios/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/scenarios/README.md -------------------------------------------------------------------------------- /test/support/test_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/support/test_helpers.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test/test_helper.exs -------------------------------------------------------------------------------- /test_parser.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Simon-Initiative/oli-torus/HEAD/test_parser.exs --------------------------------------------------------------------------------