Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename usages of rubric to scoringData #2006

Merged

Conversation

Myranae
Copy link
Contributor

@Myranae Myranae commented Dec 13, 2024

Summary:

This is to rename anything related to scoring that still uses rubric to scoringData instead to be more in alignment with the vocabulary for server side scoring.

Issue: LEMS-2657

Test plan:

  • Confirm all checks pass
  • Confirm all checks pass in a webapp draft
  • Check for issues with widgets affected

@Myranae Myranae self-assigned this Dec 13, 2024
Copy link
Contributor

github-actions bot commented Dec 13, 2024

Size Change: +2 B (0%)

Total Size: 1.27 MB

Filename Size Change
packages/perseus/dist/es/index.js 416 kB +2 B (0%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 39 kB
packages/keypad-context/dist/es/index.js 760 B
packages/kmath/dist/es/index.js 4.27 kB
packages/math-input/dist/es/index.js 77.9 kB
packages/math-input/dist/es/strings.js 1.79 kB
packages/perseus-core/dist/es/index.js 1.48 kB
packages/perseus-editor/dist/es/index.js 688 kB
packages/perseus-linter/dist/es/index.js 22.2 kB
packages/perseus/dist/es/strings.js 4.12 kB
packages/pure-markdown/dist/es/index.js 3.66 kB
packages/simple-markdown/dist/es/index.js 12.5 kB

compressed-size-action

Copy link
Contributor

github-actions bot commented Dec 13, 2024

npm Snapshot: Published

Good news!! We've packaged up the latest commit from this PR (6f1c890) and published it to npm. You
can install it using the tag PR2006.

Example:

yarn add @khanacademy/perseus@PR2006

If you are working in Khan Academy's webapp, you can run:

./dev/tools/bump_perseus_version.sh -t PR2006

@Myranae Myranae marked this pull request as ready for review December 13, 2024 20:45
This rename is so that the parameter names here match up with the WidgetScorerFunction type
function scoreCSProgram(state: PerseusCSProgramUserInput): PerseusScore {
function scoreCSProgram(userInput: PerseusCSProgramUserInput): PerseusScore {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jeremywiebe pointed out that the parameter names should follow the WidgetScorerFunction type, so updating this here since I updated another similar parameter in this PR as well.

Copy link
Contributor

@handeyeco handeyeco Dec 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is fine to do, but it makes me wonder if this is semantically incorrect for specific widgets. For the CSProgram and IFrame, we're not getting the user input - we're getting a correct/incorrect state. Leave it as-is and if Jeremy reviews this maybe he'll +1 one of us otherwise ship it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is semantically incorrect, but I think for consistency sake it makes sense to send the correctness info inside UserInput for these types of widgets.

It's not technically user input, but I don't think it's worth creating another way to send it. "User input" is close enough for now.

function scoreCSProgram(state: PerseusCSProgramUserInput): PerseusScore {
function scoreCSProgram(userInput: PerseusCSProgramUserInput): PerseusScore {
Copy link
Contributor

@handeyeco handeyeco Dec 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is fine to do, but it makes me wonder if this is semantically incorrect for specific widgets. For the CSProgram and IFrame, we're not getting the user input - we're getting a correct/incorrect state. Leave it as-is and if Jeremy reviews this maybe he'll +1 one of us otherwise ship it.

@@ -0,0 +1,5 @@
---
"@khanacademy/perseus": minor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renaming getOneCorrectAnswerFromRubric made me think this would be a major bump because I thought Webapp used it, but I checked and was wrong. Minor should be good.

function scoreCSProgram(state: PerseusCSProgramUserInput): PerseusScore {
function scoreCSProgram(userInput: PerseusCSProgramUserInput): PerseusScore {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is semantically incorrect, but I think for consistency sake it makes sense to send the correctness info inside UserInput for these types of widgets.

It's not technically user input, but I don't think it's worth creating another way to send it. "User input" is close enough for now.

// Translatable Text; A 2-dimensional array of text to populate the table with
answers: ReadonlyArray<ReadonlyArray<string>>;
};

export type PerseusTableUserInput = ReadonlyArray<ReadonlyArray<string>>;

export type Rubric =
export type ScoringData =
| PerseusCategorizerScoringData
| PerseusCSProgramRubric
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's some types here that haven't been renamed from *Rubric to *ScoringData. Is there a reason for that?

Copy link
Contributor Author

@Myranae Myranae Dec 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, yes, CS Program and iFrame are removed in their respective PRs and Label Image is renamed in its PR.

@Myranae Myranae changed the base branch from main to feature/client-validation December 17, 2024 20:50
@@ -268,12 +268,12 @@ class Radio extends React.Component<Props> implements Widget {
*/
showRationalesForCurrentlySelectedChoices: (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only reservation with these changes are touching some of the things we need to address in the future: showRationalesForCurrentlySelectedChoices, reviewModeRubric, etc. I think it's fine to ship the changes, there's just something in the back of my mind worried that we'll lose some context by renaming things around these APIs before we actually work on them.

I have no justification for this concern, so no action needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@handeyeco I can go through and leave a link to this PR on the relevant tickets and just point out that the naming may have changed and here's where you can see where that happened. I think I might also suggest that if it hasn't been renamed that it get renamed in the course of whatever ticket work happens. Does that sound like a good way to help prevent some loss of context?

I am also 100% okay with putting out another PR reverting any naming changes if we decide after I've landed this that we don't actually want some of these things renamed.

@Myranae Myranae merged commit 879d2a5 into feature/client-validation Dec 18, 2024
8 checks passed
@Myranae Myranae deleted the tb/LEMS-2657/rename-rubric-to-scoringData branch December 18, 2024 21:02
jeremywiebe added a commit that referenced this pull request Jan 23, 2025
## Summary:
This PR includes the following commits:
- Swap out deprecated input-number with numeric-input in some tests (#1995)
- SSS: Hook emptyWidgets() up to validation functions (#2000)
- Add test to document empty expression can be a correct answer (#2003)
- Remove unused rubric type for CS Program (#1997)
- Remove unused rubric type for iFrame (#1996)
- Refactor LabelImage to separate out answers from userInput into scoringData (#1965)
- Label-image: Extract validation out of scoring (#2016)
- Rename usages of rubric to scoringData (#2006)
- SSS: Improve types for validation (#2002)

## Test plan:
- Confirm all checks pass
- Manual test widgets to confirm they act as expected by creating a webapp testing branch/PR
- Confirm widgets all grade as expected

Author: Myranae

Reviewers: jeremywiebe, handeyeco

Required Reviewers:

Approved By: jeremywiebe

Checks: ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Publish Storybook to Chromatic (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Prime node_modules cache for primary configuration (ubuntu-latest, 20.x)

Pull Request URL: #2031
catandthemachines added a commit that referenced this pull request Jan 27, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @khanacademy/perseus@52.0.0

### Major Changes

- [#1965](#1965)
[`0f2bec314`](0f2bec3)
Thanks [@Myranae](https://github.com/Myranae)! - Refactor the LabelImage
widget to separate out answers from userInput into scoringData


- [#2134](#2134)
[`117e78d03`](117e78d)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move widget ID
utils to perseus-core


- [#2153](#2153)
[`29a1c656e`](29a1c65)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Rename all
instances of the term "ScoringData" back to "Rubric"


- [#2135](#2135)
[`7a984eba6`](7a984eb)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Expression
WidgetOptions logic to core

### Minor Changes

- [#2002](#2002)
[`a1e22a4e3`](a1e22a4)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Add and improve
types for scoring and validation


- [#2155](#2155)
[`0df0b1940`](0df0b19)
Thanks [@benchristel](https://github.com/benchristel)! - Move
`parsePerseusItem`, `parseAndMigratePerseusItem`,
    `parseAndMigratePerseusArticle`, `isSuccess`, and `isFailure` to the
`perseus-core` package, and deprecate the equivalent exports from the
`perseus`
    package.


- [#2032](#2032)
[`22d108fdc`](22d108f)
Thanks [@anakaren-rojas](https://github.com/anakaren-rojas)! - adds aria
labels to line segment


- [#2038](#2038)
[`e6f7cc91e`](e6f7cc9)
Thanks [@Myranae](https://github.com/Myranae)! - Fix some naming
discrepancies related to validation and simplify Matcher ScoringData
type


- [#2083](#2083)
[`4c10af109`](4c10af1)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Use empty
widgets check in scoring function


- [#2000](#2000)
[`0db68d222`](0db68d2)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Change empty
widgets check in Renderer to depend only on data available (and not on
scoring data)


- [#2137](#2137)
[`b4b3a3dbb`](b4b3a3d)
Thanks [@Myranae](https://github.com/Myranae)! - Implement a widget
export function to filter out rubric data from widget options for the
orderer widget


- [#2006](#2006)
[`879d2a501`](879d2a5)
Thanks [@Myranae](https://github.com/Myranae)! - Rename usages of rubric
to scoringData


- [#2139](#2139)
[`32cc4a45b`](32cc4a4)
Thanks [@Myranae](https://github.com/Myranae)! - Implement a widget
export function to filter out rubric data from widget options for the
Expression widget


- [#2016](#2016)
[`55ad836c6`](55ad836)
Thanks [@Myranae](https://github.com/Myranae)! - Introduces a validation
function for the label-image widget (extracted from label-image scoring
function).

### Patch Changes

- [#2142](#2142)
[`d7bcb14c3`](d7bcb14)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Radio upgrade
logic to Perseus Core


- [#2122](#2122)
[`1a75ca628`](1a75ca6)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Type and test
fixes for new MockWidget (isolating to be seen only in tests)


- [#2143](#2143)
[`459c25074`](459c250)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Passage
widgets upgrade logic to Perseus Core


- [#1997](#1997)
[`0464a760f`](0464a76)
Thanks [@Myranae](https://github.com/Myranae)! - Remove unused CS
Program rubric type


- [#2110](#2110)
[`e2f2cee9f`](e2f2cee)
Thanks [@nishasy](https://github.com/nishasy)! - [SR] Linear - Add the
interactive elements linear description to the whole graph container


- [#2136](#2136)
[`ffaa3904a`](ffaa390)
Thanks [@nishasy](https://github.com/nishasy)! - [SR] Quadratic - add
screen reader support for Quadratic interactive graph


- [#1996](#1996)
[`b6623bb56`](b6623bb)
Thanks [@Myranae](https://github.com/Myranae)! - Remove unused iframe
rubric type


- [#2124](#2124)
[`bdbdafe5d`](bdbdafe)
Thanks [@dependabot](https://github.com/apps/dependabot)! - Updating
wonder-blocks dependences.


- [#2152](#2152)
[`f8c9d3574`](f8c9d35)
Thanks [@Myranae](https://github.com/Myranae)! - Move the categorizer,
orderer, and expression public widget options functions from perseus
package to their widget folders in perseus-core


- [#1995](#1995)
[`99cd254de`](99cd254)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - TESTS: swap
input-number out of renderer tests as it is deprecated


- [#2141](#2141)
[`1355d6cfc`](1355d6c)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Measurer
upgrade logic to Perseus Core

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`29a1c656e`](29a1c65),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0
    -   @khanacademy/perseus-score@2.0.0
    -   @khanacademy/kas@0.4.12
    -   @khanacademy/keypad-context@1.0.15
    -   @khanacademy/kmath@0.3.1
    -   @khanacademy/math-input@22.2.2
    -   @khanacademy/perseus-linter@1.2.14
    -   @khanacademy/pure-markdown@0.3.23
    -   @khanacademy/simple-markdown@0.13.16

## @khanacademy/perseus-score@2.0.0

### Major Changes

- [#2153](#2153)
[`29a1c656e`](29a1c65)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Rename all
instances of the term "ScoringData" back to "Rubric"

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0
    -   @khanacademy/kas@0.4.12
    -   @khanacademy/kmath@0.3.1

## @khanacademy/perseus-core@3.3.0

### Minor Changes

- [#2158](#2158)
[`8f8955718`](8f89557)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Re-export
widget id support function: addWidget


- [#2142](#2142)
[`d7bcb14c3`](d7bcb14)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Radio upgrade
logic to Perseus Core


- [#2148](#2148)
[`685774f2e`](685774f)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Matcher
upgrade logic to Perseus Core


- [#2145](#2145)
[`8a489600e`](8a48960)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget
upgrade logic to Perseus Core (pt 2)


- [#2143](#2143)
[`459c25074`](459c250)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Passage
widgets upgrade logic to Perseus Core


- [#2155](#2155)
[`0df0b1940`](0df0b19)
Thanks [@benchristel](https://github.com/benchristel)! - Move
`parsePerseusItem`, `parseAndMigratePerseusItem`,
    `parseAndMigratePerseusArticle`, `isSuccess`, and `isFailure` to the
`perseus-core` package, and deprecate the equivalent exports from the
`perseus`
    package.


- [#2144](#2144)
[`dc8118aa1`](dc8118a)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget
upgrade logic to Perseus Core (pt 1)


- [#2150](#2150)
[`82fa90299`](82fa902)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move
InteractiveGraph widget upgrade to Perseus Core


- [#2134](#2134)
[`117e78d03`](117e78d)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move widget ID
utils to perseus-core


- [#2135](#2135)
[`7a984eba6`](7a984eb)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Expression
WidgetOptions logic to core


- [#2141](#2141)
[`1355d6cfc`](1355d6c)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Measurer
upgrade logic to Perseus Core


- [#2149](#2149)
[`75f43a8f4`](75f43a8)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Table upgrade
logic to Perseus Core


- [#2147](#2147)
[`ebf3695b6`](ebf3695)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move upgrade logic
for NumberLine to Perseus Core

### Patch Changes

- [#2122](#2122)
[`1a75ca628`](1a75ca6)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Type and test
fixes for new MockWidget (isolating to be seen only in tests)


- [#2137](#2137)
[`b4b3a3dbb`](b4b3a3d)
Thanks [@Myranae](https://github.com/Myranae)! - Move util files out of
widget folder in perseus package to utils folder in perseus-core


- [#2152](#2152)
[`f8c9d3574`](f8c9d35)
Thanks [@Myranae](https://github.com/Myranae)! - Move the categorizer,
orderer, and expression public widget options functions from perseus
package to their widget folders in perseus-core


- [#2139](#2139)
[`32cc4a45b`](32cc4a4)
Thanks [@Myranae](https://github.com/Myranae)! - Move util files out of
widget folder in perseus package to utils folder in perseus-core

## @khanacademy/perseus-editor@17.4.0

### Minor Changes

- [#2015](#2015)
[`46623c8f1`](46623c8)
Thanks [@mark-fitzgerald](https://github.com/mark-fitzgerald)! -
[Numeric Input] Re-organize editor and improve its UI


- [#2015](#2015)
[`46623c8f1`](46623c8)
Thanks [@mark-fitzgerald](https://github.com/mark-fitzgerald)! -
[Numeric Input] - Adjust editor to organize settings more logically

### Patch Changes

- [#2142](#2142)
[`d7bcb14c3`](d7bcb14)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Radio upgrade
logic to Perseus Core


- [#2148](#2148)
[`685774f2e`](685774f)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Matcher
upgrade logic to Perseus Core


- [#2145](#2145)
[`8a489600e`](8a48960)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget
upgrade logic to Perseus Core (pt 2)


- [#2122](#2122)
[`1a75ca628`](1a75ca6)
Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Type and test
fixes for new MockWidget (isolating to be seen only in tests)


- [#2143](#2143)
[`459c25074`](459c250)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Passage
widgets upgrade logic to Perseus Core


- [#2144](#2144)
[`dc8118aa1`](dc8118a)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move simple widget
upgrade logic to Perseus Core (pt 1)


- [#2150](#2150)
[`82fa90299`](82fa902)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move
InteractiveGraph widget upgrade to Perseus Core


- [#1965](#1965)
[`0f2bec314`](0f2bec3)
Thanks [@Myranae](https://github.com/Myranae)! - Refactor the LabelImage
widget to separate out answers from userInput into scoringData


- [#2124](#2124)
[`bdbdafe5d`](bdbdafe)
Thanks [@dependabot](https://github.com/apps/dependabot)! - Updating
wonder-blocks dependences.


- [#2135](#2135)
[`7a984eba6`](7a984eb)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Expression
WidgetOptions logic to core


- [#2141](#2141)
[`1355d6cfc`](1355d6c)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Measurer
upgrade logic to Perseus Core


- [#2149](#2149)
[`75f43a8f4`](75f43a8)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move Table upgrade
logic to Perseus Core


- [#2147](#2147)
[`ebf3695b6`](ebf3695)
Thanks [@handeyeco](https://github.com/handeyeco)! - Move upgrade logic
for NumberLine to Perseus Core

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`a1e22a4e3`](a1e22a4),
[`0464a760f`](0464a76),
[`0df0b1940`](0df0b19),
[`22d108fdc`](22d108f),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`e2f2cee9f`](e2f2cee),
[`ffaa3904a`](ffaa390),
[`0f2bec314`](0f2bec3),
[`b4b3a3dbb`](b4b3a3d),
[`e6f7cc91e`](e6f7cc9),
[`4c10af109`](4c10af1),
[`b6623bb56`](b6623bb),
[`0db68d222`](0db68d2),
[`bdbdafe5d`](bdbdafe),
[`117e78d03`](117e78d),
[`b4b3a3dbb`](b4b3a3d),
[`29a1c656e`](29a1c65),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`879d2a501`](879d2a5),
[`32cc4a45b`](32cc4a4),
[`99cd254de`](99cd254),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`55ad836c6`](55ad836),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0
    -   @khanacademy/perseus@52.0.0
    -   @khanacademy/perseus-score@2.0.0
    -   @khanacademy/kas@0.4.12
    -   @khanacademy/keypad-context@1.0.15
    -   @khanacademy/kmath@0.3.1
    -   @khanacademy/math-input@22.2.2
    -   @khanacademy/pure-markdown@0.3.23

## @khanacademy/kas@0.4.12

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0

## @khanacademy/keypad-context@1.0.15

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0

## @khanacademy/kmath@0.3.1

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0

## @khanacademy/math-input@22.2.2

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0
    -   @khanacademy/keypad-context@1.0.15

## @khanacademy/perseus-linter@1.2.14

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0

## @khanacademy/pure-markdown@0.3.23

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0
    -   @khanacademy/simple-markdown@0.13.16

## @khanacademy/simple-markdown@0.13.16

### Patch Changes

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0

## @khanacademy/perseus-dev-ui@5.1.2

### Patch Changes

- [#2124](#2124)
[`bdbdafe5d`](bdbdafe)
Thanks [@dependabot](https://github.com/apps/dependabot)! - Updating
wonder-blocks dependences.

- Updated dependencies
\[[`8f8955718`](8f89557),
[`d7bcb14c3`](d7bcb14),
[`685774f2e`](685774f),
[`8a489600e`](8a48960),
[`1a75ca628`](1a75ca6),
[`459c25074`](459c250),
[`0df0b1940`](0df0b19),
[`dc8118aa1`](dc8118a),
[`82fa90299`](82fa902),
[`b4b3a3dbb`](b4b3a3d),
[`117e78d03`](117e78d),
[`7a984eba6`](7a984eb),
[`f8c9d3574`](f8c9d35),
[`1355d6cfc`](1355d6c),
[`75f43a8f4`](75f43a8),
[`32cc4a45b`](32cc4a4),
[`ebf3695b6`](ebf3695)]:
    -   @khanacademy/perseus-core@3.3.0
    -   @khanacademy/kas@0.4.12
    -   @khanacademy/kmath@0.3.1
    -   @khanacademy/math-input@22.2.2
    -   @khanacademy/perseus-linter@1.2.14
    -   @khanacademy/pure-markdown@0.3.23
    -   @khanacademy/simple-markdown@0.13.16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants