@khanacademy/perseus-core 0.0.0-PR3107-20251209021758 → 0.0.0-PR3107-20251210221600

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -95,6 +95,7 @@ export { default as videoLogic } from "./widgets/video";
95
95
  export type { VideoDefaultWidgetOptions } from "./widgets/video";
96
96
  export { applyDefaultsToWidgets, applyDefaultsToWidget, } from "./widgets/apply-defaults";
97
97
  export { default as getDefaultAnswerArea } from "./utils/get-default-answer-area";
98
+ export { getDefaultFigureForType } from "./utils/get-default-figure-for-type";
98
99
  export { default as splitPerseusItem, splitPerseusItemJSON, } from "./utils/split-perseus-item";
99
100
  export { default as Registry } from "./utils/registry";
100
101
  export type * from "./widgets/logic-export.types";
@@ -144,6 +145,6 @@ export { generateExpressionOptions, generateExpressionAnswerForm, generateExpres
144
145
  export { generateFreeResponseOptions, generateFreeResponseWidget, } from "./utils/generators/free-response-widget-generator";
145
146
  export { generateImageOptions, generateImageWidget, } from "./utils/generators/image-widget-generator";
146
147
  export { generateNumericInputOptions, generateNumericInputAnswer, generateNumericInputWidget, } from "./utils/generators/numeric-input-widget-generator";
147
- export { generateRadioOptions, generateRadioWidget, } from "./utils/generators/radio-widget-generator";
148
+ export { generateRadioOptions, generateRadioWidget, generateRadioChoice, generateSimpleRadioQuestion, generateSimpleRadioItem, } from "./utils/generators/radio-widget-generator";
148
149
  export { generateVideoWidget } from "./utils/generators/video-widget-generator";
149
150
  export { getAnswersFromWidgets, injectWidgets, getPerseusAIData, } from "./utils/extract-perseus-ai-data";
package/dist/index.js CHANGED
@@ -6,8 +6,8 @@ var _ = require('underscore');
6
6
  require('tiny-invariant');
7
7
  var KAS = require('@khanacademy/kas');
8
8
  var perseusUtils = require('@khanacademy/perseus-utils');
9
- var pureMarkdown = require('@khanacademy/pure-markdown');
10
9
  var wonderStuffCore = require('@khanacademy/wonder-stuff-core');
10
+ var pureMarkdown = require('@khanacademy/pure-markdown');
11
11
 
12
12
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
13
 
@@ -406,6 +406,8 @@ const defaultWidgetOptions={content:"",widgets:{},images:{}};const traverseChild
406
406
 
407
407
  function getDefaultAnswerArea(){return ItemExtras.reduce((acc,curr)=>({...acc,[curr]:false}),{})}
408
408
 
409
+ const DEFAULT_COLOR="grayH";function getDefaultFigureForType(type){switch(type){case "point":return {type:"point",coord:[0,0],color:DEFAULT_COLOR,filled:true,labels:[]};case "line":return {type:"line",kind:"line",points:[getDefaultFigureForType("point"),{...getDefaultFigureForType("point"),coord:[2,2]}],color:DEFAULT_COLOR,lineStyle:"solid",showPoint1:false,showPoint2:false,weight:"medium",labels:[]};case "vector":return {type:"vector",points:[[0,0],[2,2]],color:DEFAULT_COLOR,weight:"medium",labels:[]};case "ellipse":return {type:"ellipse",center:[0,0],radius:[1,1],angle:0,color:DEFAULT_COLOR,fillStyle:"none",strokeStyle:"solid",weight:"medium",labels:[]};case "polygon":return {type:"polygon",points:[[0,2],[-1,0],[1,0]],color:DEFAULT_COLOR,showVertices:false,fillStyle:"none",strokeStyle:"solid",weight:"medium",labels:[]};case "function":return {type:"function",color:DEFAULT_COLOR,strokeStyle:"solid",weight:"medium",equation:"x^2",domain:[-Infinity,Infinity],directionalAxis:"x",labels:[]};case "label":return {type:"label",coord:[0,0],text:"label",color:DEFAULT_COLOR,size:"medium"};default:throw new wonderStuffCore.UnreachableCaseError(type)}}
410
+
409
411
  function splitPerseusItem(original){const item=deepClone(original);return {...item,question:splitPerseusRenderer(item.question),hints:[]}}function splitPerseusItemJSON(data){const parseResult=parseAndMigratePerseusItem(data);if(isFailure(parseResult)){throw new SyntaxError(parseResult.detail.message)}const item=parseResult.value;return JSON.stringify(splitPerseusItem(item))}
410
412
 
411
413
  const PerseusFeatureFlags=["new-radio-widget","image-widget-upgrade"];function isFeatureOn(props,flag){return props.apiOptions?.flags?.[flag]??false}
@@ -428,7 +430,7 @@ function generateImageOptions(options){const defaultImageOptions={backgroundImag
428
430
 
429
431
  function generateNumericInputOptions(options){return {...numericInputWidgetLogic.defaultWidgetOptions,static:false,...options}}function generateNumericInputAnswer(answerOptions){return {...numericInputWidgetLogic.defaultWidgetOptions.answers[0],...answerOptions}}function generateNumericInputWidget(numericInputWidgetProperties){return {type:"numeric-input",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateNumericInputOptions(),...numericInputWidgetProperties}}
430
432
 
431
- function generateRadioOptions(options){return {...radioWidgetLogic.defaultWidgetOptions,...options}}function generateRadioWidget(radioWidgetProperties){return {type:"radio",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateRadioOptions(),...radioWidgetProperties}}
433
+ function generateRadioOptions(options){return {...radioWidgetLogic.defaultWidgetOptions,...options}}function generateRadioWidget(radioWidgetProperties){return {type:"radio",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateRadioOptions(),...radioWidgetProperties}}function generateRadioChoice(text,options){return {content:text,id:`radio-choice-${Math.random()}`,correct:false,...options}}function generateSimpleRadioQuestion(options){return generateTestPerseusRenderer({content:"[[☃ radio 1]]",widgets:{"radio 1":generateRadioWidget({options:generateRadioOptions(options)})}})}function generateSimpleRadioItem(options){return generateTestPerseusItem({question:generateSimpleRadioQuestion(options)})}
432
434
 
433
435
  function generateVideoWidget(videoWidgetProperties){return {type:"video",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:{location:""},...videoWidgetProperties}}
434
436
 
@@ -484,8 +486,11 @@ exports.generateImageWidget = generateImageWidget;
484
486
  exports.generateNumericInputAnswer = generateNumericInputAnswer;
485
487
  exports.generateNumericInputOptions = generateNumericInputOptions;
486
488
  exports.generateNumericInputWidget = generateNumericInputWidget;
489
+ exports.generateRadioChoice = generateRadioChoice;
487
490
  exports.generateRadioOptions = generateRadioOptions;
488
491
  exports.generateRadioWidget = generateRadioWidget;
492
+ exports.generateSimpleRadioItem = generateSimpleRadioItem;
493
+ exports.generateSimpleRadioQuestion = generateSimpleRadioQuestion;
489
494
  exports.generateTestPerseusItem = generateTestPerseusItem;
490
495
  exports.generateTestPerseusRenderer = generateTestPerseusRenderer;
491
496
  exports.generateVideoWidget = generateVideoWidget;
@@ -496,6 +501,7 @@ exports.getCategorizerPublicWidgetOptions = getCategorizerPublicWidgetOptions;
496
501
  exports.getDataUrl = getDataUrl;
497
502
  exports.getDecimalSeparator = getDecimalSeparator;
498
503
  exports.getDefaultAnswerArea = getDefaultAnswerArea;
504
+ exports.getDefaultFigureForType = getDefaultFigureForType;
499
505
  exports.getDivideSymbol = getDivideSymbol;
500
506
  exports.getDivideSymbolForTex = getDivideSymbolForTex;
501
507
  exports.getDropdownPublicWidgetOptions = getDropdownPublicWidgetOptions;