@khanacademy/perseus-core 37.0.0 → 38.0.1

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.
Files changed (45) hide show
  1. package/dist/data-schema.d.ts +9 -5
  2. package/dist/es/index.item-splitting.js +4 -0
  3. package/dist/es/index.item-splitting.js.map +1 -1
  4. package/dist/es/index.js +11 -7
  5. package/dist/es/index.js.map +1 -1
  6. package/dist/index.d.ts +7 -61
  7. package/dist/index.item-splitting.js +4 -0
  8. package/dist/index.item-splitting.js.map +1 -1
  9. package/dist/index.js +14 -6
  10. package/dist/index.js.map +1 -1
  11. package/dist/utils/generators/table-widget-generator.d.ts +10 -0
  12. package/dist/validation.types.d.ts +8 -228
  13. package/dist/widgets/categorizer/index.d.ts +0 -1
  14. package/dist/widgets/cs-program/index.d.ts +0 -1
  15. package/dist/widgets/definition/index.d.ts +0 -2
  16. package/dist/widgets/dropdown/index.d.ts +0 -1
  17. package/dist/widgets/explanation/index.d.ts +0 -2
  18. package/dist/widgets/expression/index.d.ts +0 -1
  19. package/dist/widgets/free-response/index.d.ts +0 -1
  20. package/dist/widgets/graded-group/index.d.ts +0 -2
  21. package/dist/widgets/graded-group-set/index.d.ts +0 -2
  22. package/dist/widgets/grapher/index.d.ts +0 -1
  23. package/dist/widgets/group/index.d.ts +0 -1
  24. package/dist/widgets/iframe/index.d.ts +0 -1
  25. package/dist/widgets/image/index.d.ts +0 -1
  26. package/dist/widgets/input-number/index.d.ts +0 -1
  27. package/dist/widgets/interaction/index.d.ts +0 -2
  28. package/dist/widgets/interactive-graph/index.d.ts +0 -1
  29. package/dist/widgets/label-image/index.d.ts +0 -1
  30. package/dist/widgets/matcher/index.d.ts +0 -1
  31. package/dist/widgets/matrix/index.d.ts +0 -1
  32. package/dist/widgets/measurer/index.d.ts +0 -2
  33. package/dist/widgets/number-line/index.d.ts +0 -1
  34. package/dist/widgets/numeric-input/index.d.ts +0 -1
  35. package/dist/widgets/orderer/index.d.ts +0 -1
  36. package/dist/widgets/orderer/orderer-util.d.ts +11 -1
  37. package/dist/widgets/phet-simulation/index.d.ts +0 -2
  38. package/dist/widgets/plotter/index.d.ts +0 -1
  39. package/dist/widgets/python-program/index.d.ts +0 -2
  40. package/dist/widgets/radio/index.d.ts +0 -1
  41. package/dist/widgets/sorter/index.d.ts +0 -1
  42. package/dist/widgets/sorter/sorter-util.d.ts +12 -1
  43. package/dist/widgets/table/index.d.ts +0 -1
  44. package/dist/widgets/video/index.d.ts +0 -2
  45. package/package.json +1 -1
@@ -1572,16 +1572,20 @@ export type PerseusSorterWidgetOptions = {
1572
1572
  * will see the cards in a randomized order.
1573
1573
  */
1574
1574
  correct: string[];
1575
- /**
1576
- * Adds padding to the options. Padding is good for text but not needed
1577
- * for images
1578
- */
1579
- padding: boolean;
1580
1575
  /**
1581
1576
  * Use the "horizontal" layout for short text and small images. The
1582
1577
  * "vertical" layout is best for longer text and larger images.
1583
1578
  */
1584
1579
  layout: "horizontal" | "vertical";
1580
+ /**
1581
+ * Adds padding to the options. Padding is good for text but not needed
1582
+ * for images
1583
+ *
1584
+ * @deprecated
1585
+ *
1586
+ * TODO(LEMS-4538): remove padding from Sorter
1587
+ */
1588
+ padding: boolean;
1585
1589
  };
1586
1590
  /** Options for the table widget. A grid of input cells with column headers. */
1587
1591
  export type PerseusTableWidgetOptions = {
@@ -164,6 +164,10 @@ class Registry{throwIfUnregistered(){if(!this.anythingRegistered){throw new Erro
164
164
 
165
165
  const seededRNG=function(seed){let randomSeed=seed;return function(){let seed=randomSeed;seed=seed+0x7ed55d16+(seed<<12)&0xffffffff;seed=(seed^0xc761c23c^seed>>>19)&0xffffffff;seed=seed+0x165667b1+(seed<<5)&0xffffffff;seed=(seed+0xd3a2646c^seed<<9)&0xffffffff;seed=seed+0xfd7046c5+(seed<<3)&0xffffffff;seed=(seed^0xb55a4f09^seed>>>16)&0xffffffff;return (randomSeed=seed&0xfffffff)/0x10000000}};seededRNG(new Date().getTime()&0xffffffff);
166
166
 
167
+ function toCard(content){return {content,widgets:{},images:{}}}function getCategoryScore(content){if(/\d/.test(content)){return 0}if(/^\$?[a-zA-Z]+\$?$/.test(content)){return 2}return 1}function mergeCards(correctOptions,otherOptions){const allCards=[...correctOptions,...otherOptions];return [...new Set(allCards.map(card=>card.content))].filter(content=>content!=="").sort().sort((a,b)=>getCategoryScore(a)-getCategoryScore(b)).map(toCard)}
168
+
169
+ const defaultCorrectOptions=[toCard("$x$")];const defaultOtherOptions=[toCard("$y$")];({options:mergeCards(defaultCorrectOptions,defaultOtherOptions)});
170
+
167
171
  const defaultRows=4;const defaultColumns=1;new Array(defaultRows).fill(0).map(()=>new Array(defaultColumns).fill(""));
168
172
 
169
173
  const widgets=new Registry("Core widget registry");function getCurrentVersion(type){const widgetLogic=widgets.get(type);return widgetLogic?.version||{major:0,minor:0}}const getPublicWidgetOptionsFunction=type=>{return widgets.get(type)?.getPublicWidgetOptions??(i=>i)};function getDefaultWidgetOptions(type){const widgetLogic=widgets.get(type);return widgetLogic?.defaultWidgetOptions||{}}const getSupportedAlignments=type=>{const widgetLogic=widgets.get(type);if(!widgetLogic?.supportedAlignments?.[0]){return ["default"]}return widgetLogic?.supportedAlignments};