@khanacademy/perseus-core 0.0.0-PR3094-20251205185251 → 0.0.0-PR3096-20251205233811

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
@@ -137,6 +137,9 @@ export { default as PerseusFeatureFlags, isFeatureOn } from "./feature-flags";
137
137
  export { traverse } from "./traversal";
138
138
  export { isItemAccessible, violatingWidgets } from "./accessibility";
139
139
  export { isLabeledSVG, getRealImageUrl, getBaseUrl, getSvgUrl, getDataUrl, getImageSizeModern, } from "./utils/util.graphie";
140
+ export { generateDropdownOptions, generateDropdownWidget, } from "./utils/generators/dropdown-widget-generator";
141
+ export { generateExpressionOptions, generateExpressionAnswerForm, generateExpressionWidget, } from "./utils/generators/expression-widget-generator";
140
142
  export { generateFreeResponseOptions, generateFreeResponseWidget, } from "./utils/generators/free-response-widget-generator";
141
143
  export { generateImageOptions, generateImageWidget, } from "./utils/generators/image-widget-generator";
144
+ export { generateNumericInputOptions, generateNumericInputAnswer, generateNumericInputWidget, } from "./utils/generators/numeric-input-widget-generator";
142
145
  export { generateVideoWidget } from "./utils/generators/video-widget-generator";
package/dist/index.js CHANGED
@@ -413,10 +413,16 @@ const noop=function(){};const deepCallbackFor=function(contentCallback,widgetCal
413
413
 
414
414
  function violatingWidgets(itemData){const widgetTypes=[];traverse(itemData.question,null,function(info){if(info.type&&!isAccessible(info.type,info.options)){widgetTypes.push(info.type);}});return [...new Set(widgetTypes)]}function isItemAccessible(itemData){const ast=pureMarkdown.parse(itemData.question.content);const widgetIdsInUse=new Set;let hasInaccessibleImage=false;pureMarkdown.traverseContent(ast,node=>{if(node.type==="image"&&(node.alt==null||node.alt==="")){hasInaccessibleImage=true;return}if(node.type==="widget"){widgetIdsInUse.add(node.id);}});if(hasInaccessibleImage){return false}const itemDataWithOnlyActiveWidgets={...itemData,question:{...itemData.question,widgets:Object.fromEntries(Object.entries(itemData.question.widgets).filter(([id])=>widgetIdsInUse.has(id)))}};return violatingWidgets(itemDataWithOnlyActiveWidgets).length===0}
415
415
 
416
+ function generateDropdownOptions(options){return {...dropdownWidgetLogic.defaultWidgetOptions,...options}}function generateDropdownWidget(dropdownWidgetProperties){return {type:"dropdown",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateDropdownOptions(),...dropdownWidgetProperties}}
417
+
418
+ function generateExpressionOptions(options){return {...expressionWidgetLogic.defaultWidgetOptions,...options}}function generateExpressionAnswerForm(answerFormOptions){return {value:"",form:false,simplify:false,considered:"wrong",...answerFormOptions}}function generateExpressionWidget(expressionWidgetProperties){return {type:"expression",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateExpressionOptions(),...expressionWidgetProperties}}
419
+
416
420
  function generateFreeResponseOptions(options){return {...freeResponseWidgetLogic.defaultWidgetOptions,...options}}function generateFreeResponseWidget(freeResponseWidgetProperties){return {type:"free-response",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateFreeResponseOptions(),...freeResponseWidgetProperties}}
417
421
 
418
422
  function generateImageOptions(options){const defaultImageOptions={backgroundImage:{}};return {...defaultImageOptions,...options}}function generateImageWidget(imageWidgetProperties){return {type:"image",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:generateImageOptions({}),...imageWidgetProperties}}
419
423
 
424
+ 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}}
425
+
420
426
  function generateVideoWidget(videoWidgetProperties){return {type:"video",graded:true,version:{major:0,minor:0},static:false,alignment:"default",options:{location:""},...videoWidgetProperties}}
421
427
 
422
428
  registerCoreWidgets();
@@ -445,10 +451,18 @@ exports.dropdownLogic = dropdownWidgetLogic;
445
451
  exports.explanationLogic = explanationWidgetLogic;
446
452
  exports.expressionLogic = expressionWidgetLogic;
447
453
  exports.freeResponseLogic = freeResponseWidgetLogic;
454
+ exports.generateDropdownOptions = generateDropdownOptions;
455
+ exports.generateDropdownWidget = generateDropdownWidget;
456
+ exports.generateExpressionAnswerForm = generateExpressionAnswerForm;
457
+ exports.generateExpressionOptions = generateExpressionOptions;
458
+ exports.generateExpressionWidget = generateExpressionWidget;
448
459
  exports.generateFreeResponseOptions = generateFreeResponseOptions;
449
460
  exports.generateFreeResponseWidget = generateFreeResponseWidget;
450
461
  exports.generateImageOptions = generateImageOptions;
451
462
  exports.generateImageWidget = generateImageWidget;
463
+ exports.generateNumericInputAnswer = generateNumericInputAnswer;
464
+ exports.generateNumericInputOptions = generateNumericInputOptions;
465
+ exports.generateNumericInputWidget = generateNumericInputWidget;
452
466
  exports.generateTestPerseusItem = generateTestPerseusItem;
453
467
  exports.generateTestPerseusRenderer = generateTestPerseusRenderer;
454
468
  exports.generateVideoWidget = generateVideoWidget;