diff --git a/.changeset/nasty-rockets-end.md b/.changeset/nasty-rockets-end.md new file mode 100644 index 0000000000..83e8c9df1a --- /dev/null +++ b/.changeset/nasty-rockets-end.md @@ -0,0 +1,6 @@ +--- +"@khanacademy/perseus": minor +"@khanacademy/perseus-core": minor +--- + +Create a function to get the public widget options for a CS widget. diff --git a/packages/perseus-core/src/index.ts b/packages/perseus-core/src/index.ts index 1b62efa61a..92746ac12d 100644 --- a/packages/perseus-core/src/index.ts +++ b/packages/perseus-core/src/index.ts @@ -116,6 +116,7 @@ export type * from "./widgets/logic-export.types"; export {default as getOrdererPublicWidgetOptions} from "./widgets/orderer/orderer-util"; export {default as getCategorizerPublicWidgetOptions} from "./widgets/categorizer/categorizer-util"; +export {default as getCSProgramPublicWidgetOptions} from "./widgets/cs-program/cs-program-util"; export {default as getExpressionPublicWidgetOptions} from "./widgets/expression/expression-util"; export {default as getLabelImagePublicWidgetOptions} from "./widgets/label-image/label-image-util"; export {default as getSorterPublicWidgetOptions} from "./widgets/sorter/sorter-util"; diff --git a/packages/perseus-core/src/widgets/cs-program/cs-program-util.ts b/packages/perseus-core/src/widgets/cs-program/cs-program-util.ts new file mode 100644 index 0000000000..5e8e4ceaad --- /dev/null +++ b/packages/perseus-core/src/widgets/cs-program/cs-program-util.ts @@ -0,0 +1,7 @@ +import type {PerseusCSProgramWidgetOptions} from "../../data-schema"; + +export default function getCSProgramPublicWidgetOptions( + options: PerseusCSProgramWidgetOptions, +): PerseusCSProgramWidgetOptions { + return options; +} diff --git a/packages/perseus/src/types.ts b/packages/perseus/src/types.ts index 027a97ba3d..91e7747c80 100644 --- a/packages/perseus/src/types.ts +++ b/packages/perseus/src/types.ts @@ -15,6 +15,7 @@ import type { WidgetOptionsUpgradeMap, getOrdererPublicWidgetOptions, getCategorizerPublicWidgetOptions, + getCSProgramPublicWidgetOptions, getExpressionPublicWidgetOptions, getSorterPublicWidgetOptions, getDropdownPublicWidgetOptions, @@ -551,7 +552,8 @@ export type PublicWidgetOptionsFunction = | typeof getOrdererPublicWidgetOptions | typeof getExpressionPublicWidgetOptions | typeof getLabelImagePublicWidgetOptions - | typeof getSorterPublicWidgetOptions; + | typeof getSorterPublicWidgetOptions + | typeof getCSProgramPublicWidgetOptions; export type WidgetExports< T extends React.ComponentType & Widget = React.ComponentType, diff --git a/packages/perseus/src/widgets/cs-program/cs-program.tsx b/packages/perseus/src/widgets/cs-program/cs-program.tsx index e652ed6e5f..e7f836b743 100644 --- a/packages/perseus/src/widgets/cs-program/cs-program.tsx +++ b/packages/perseus/src/widgets/cs-program/cs-program.tsx @@ -2,6 +2,7 @@ * This widget is for embedding Khan Academy CS programs. */ +import {getCSProgramPublicWidgetOptions} from "@khanacademy/perseus-core"; import {scoreCSProgram} from "@khanacademy/perseus-score"; import {StyleSheet, css} from "aphrodite"; import $ from "jquery"; @@ -204,4 +205,5 @@ export default { // TODO(LEMS-2656): remove TS suppression // @ts-expect-error: Type 'UserInput' is not assignable to type 'PerseusCSProgramUserInput'. scorer: scoreCSProgram, + getPublicWidgetOptions: getCSProgramPublicWidgetOptions, } satisfies WidgetExports;