@khanacademy/perseus-editor 30.1.0 → 30.2.0

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.
@@ -1,13 +1,16 @@
1
1
  import * as React from "react";
2
- import type { GrapherDefaultWidgetOptions } from "@khanacademy/perseus-core";
3
- type Props = any;
2
+ import type { APIOptionsWithDefaults } from "@khanacademy/perseus";
3
+ import type { GrapherAnswerTypes, GrapherDefaultWidgetOptions, PerseusGrapherWidgetOptions } from "@khanacademy/perseus-core";
4
+ type Props = {
5
+ onChange: (newProps: Record<string, unknown>) => void;
6
+ graph: PerseusGrapherWidgetOptions["graph"];
7
+ correct: GrapherAnswerTypes;
8
+ availableTypes: PerseusGrapherWidgetOptions["availableTypes"];
9
+ apiOptions: APIOptionsWithDefaults;
10
+ };
4
11
  declare class GrapherEditor extends React.Component<Props> {
5
- static propTypes: {
6
- onChange: any;
7
- };
8
12
  static widgetName: "grapher";
9
13
  static defaultProps: GrapherDefaultWidgetOptions;
10
- change: (arg1: any, arg2: any, arg3: any) => any;
11
14
  handleAvailableTypesChange: (newAvailableTypes: Array<any>) => void;
12
15
  serialize: () => any;
13
16
  render(): React.ReactNode;
@@ -1,4 +1,3 @@
1
- import { Changeable } from "@khanacademy/perseus";
2
1
  import { type Coords, type InteractionDefaultWidgetOptions, type MarkingsType } from "@khanacademy/perseus-core";
3
2
  import * as React from "react";
4
3
  type Graph = {
@@ -10,7 +9,8 @@ type Graph = {
10
9
  markings: MarkingsType;
11
10
  valid?: boolean;
12
11
  };
13
- type Props = Changeable.ChangeableProps & {
12
+ type Props = {
13
+ onChange: (newProps: Record<string, unknown>) => void;
14
14
  elements: ReadonlyArray<any>;
15
15
  graph: Graph;
16
16
  };
@@ -30,12 +30,11 @@ declare class InteractionEditor extends React.Component<Props, State> {
30
30
  UNSAFE_componentWillReceiveProps(nextProps: Props): void;
31
31
  _getAllVarSubscripts(elements: ReadonlyArray<any>): ReadonlyArray<any>;
32
32
  _getAllFunctionNames(elements: ReadonlyArray<any>): ReadonlyArray<string>;
33
- _updateGraphProps: (arg1: any) => any;
33
+ _updateGraphProps: (newProps: Record<string, unknown>) => void;
34
34
  _addNewElement: (arg1: React.ChangeEvent<HTMLInputElement>) => void;
35
35
  _deleteElement: (arg1: number) => void;
36
36
  _moveElementUp: (arg1: number) => void;
37
37
  _moveElementDown: (arg1: number) => void;
38
- change: (arg1: any, arg2: any, arg3: any) => any;
39
38
  serialize: () => any;
40
39
  render(): React.ReactNode;
41
40
  }
@@ -79,7 +79,6 @@ declare const InteractiveGraph: {
79
79
  showAlignmentOptions: NonNullable<boolean | undefined>;
80
80
  }>;
81
81
  keypadElement?: any;
82
- questionCompleted?: boolean;
83
82
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
84
83
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
85
84
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -529,7 +528,6 @@ declare const InteractiveGraph: {
529
528
  }>["showAlignmentOptions"]>;
530
529
  }>;
531
530
  keypadElement?: any;
532
- questionCompleted?: boolean;
533
531
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
534
532
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
535
533
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -619,7 +617,6 @@ declare const InteractiveGraph: {
619
617
  showAlignmentOptions: NonNullable<boolean | undefined>;
620
618
  }>;
621
619
  keypadElement?: any;
622
- questionCompleted?: boolean;
623
620
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
624
621
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
625
622
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -711,7 +708,6 @@ declare const InteractiveGraph: {
711
708
  showAlignmentOptions: NonNullable<boolean | undefined>;
712
709
  }>;
713
710
  keypadElement?: any;
714
- questionCompleted?: boolean;
715
711
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
716
712
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
717
713
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -800,7 +796,6 @@ declare const InteractiveGraph: {
800
796
  showAlignmentOptions: NonNullable<boolean | undefined>;
801
797
  }>;
802
798
  keypadElement?: any;
803
- questionCompleted?: boolean;
804
799
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
805
800
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
806
801
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -887,7 +882,6 @@ declare const InteractiveGraph: {
887
882
  showAlignmentOptions: NonNullable<boolean | undefined>;
888
883
  }>;
889
884
  keypadElement?: any;
890
- questionCompleted?: boolean;
891
885
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
892
886
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
893
887
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -976,7 +970,6 @@ declare const InteractiveGraph: {
976
970
  showAlignmentOptions: NonNullable<boolean | undefined>;
977
971
  }>;
978
972
  keypadElement?: any;
979
- questionCompleted?: boolean;
980
973
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
981
974
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
982
975
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1063,7 +1056,6 @@ declare const InteractiveGraph: {
1063
1056
  showAlignmentOptions: NonNullable<boolean | undefined>;
1064
1057
  }>;
1065
1058
  keypadElement?: any;
1066
- questionCompleted?: boolean;
1067
1059
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1068
1060
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1069
1061
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1150,7 +1142,6 @@ declare const InteractiveGraph: {
1150
1142
  showAlignmentOptions: NonNullable<boolean | undefined>;
1151
1143
  }>;
1152
1144
  keypadElement?: any;
1153
- questionCompleted?: boolean;
1154
1145
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1155
1146
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1156
1147
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1237,7 +1228,6 @@ declare const InteractiveGraph: {
1237
1228
  showAlignmentOptions: NonNullable<boolean | undefined>;
1238
1229
  }>;
1239
1230
  keypadElement?: any;
1240
- questionCompleted?: boolean;
1241
1231
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1242
1232
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1243
1233
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1325,7 +1315,6 @@ declare const InteractiveGraph: {
1325
1315
  showAlignmentOptions: NonNullable<boolean | undefined>;
1326
1316
  }>;
1327
1317
  keypadElement?: any;
1328
- questionCompleted?: boolean;
1329
1318
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1330
1319
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1331
1320
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1775,7 +1764,6 @@ declare const InteractiveGraph: {
1775
1764
  }>["showAlignmentOptions"]>;
1776
1765
  }>;
1777
1766
  keypadElement?: any;
1778
- questionCompleted?: boolean;
1779
1767
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1780
1768
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1781
1769
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1865,7 +1853,6 @@ declare const InteractiveGraph: {
1865
1853
  showAlignmentOptions: NonNullable<boolean | undefined>;
1866
1854
  }>;
1867
1855
  keypadElement?: any;
1868
- questionCompleted?: boolean;
1869
1856
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1870
1857
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1871
1858
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -1957,7 +1944,6 @@ declare const InteractiveGraph: {
1957
1944
  showAlignmentOptions: NonNullable<boolean | undefined>;
1958
1945
  }>;
1959
1946
  keypadElement?: any;
1960
- questionCompleted?: boolean;
1961
1947
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1962
1948
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
1963
1949
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2046,7 +2032,6 @@ declare const InteractiveGraph: {
2046
2032
  showAlignmentOptions: NonNullable<boolean | undefined>;
2047
2033
  }>;
2048
2034
  keypadElement?: any;
2049
- questionCompleted?: boolean;
2050
2035
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2051
2036
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2052
2037
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2133,7 +2118,6 @@ declare const InteractiveGraph: {
2133
2118
  showAlignmentOptions: NonNullable<boolean | undefined>;
2134
2119
  }>;
2135
2120
  keypadElement?: any;
2136
- questionCompleted?: boolean;
2137
2121
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2138
2122
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2139
2123
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2222,7 +2206,6 @@ declare const InteractiveGraph: {
2222
2206
  showAlignmentOptions: NonNullable<boolean | undefined>;
2223
2207
  }>;
2224
2208
  keypadElement?: any;
2225
- questionCompleted?: boolean;
2226
2209
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2227
2210
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2228
2211
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2309,7 +2292,6 @@ declare const InteractiveGraph: {
2309
2292
  showAlignmentOptions: NonNullable<boolean | undefined>;
2310
2293
  }>;
2311
2294
  keypadElement?: any;
2312
- questionCompleted?: boolean;
2313
2295
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2314
2296
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2315
2297
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2396,7 +2378,6 @@ declare const InteractiveGraph: {
2396
2378
  showAlignmentOptions: NonNullable<boolean | undefined>;
2397
2379
  }>;
2398
2380
  keypadElement?: any;
2399
- questionCompleted?: boolean;
2400
2381
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2401
2382
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2402
2383
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2483,7 +2464,6 @@ declare const InteractiveGraph: {
2483
2464
  showAlignmentOptions: NonNullable<boolean | undefined>;
2484
2465
  }>;
2485
2466
  keypadElement?: any;
2486
- questionCompleted?: boolean;
2487
2467
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2488
2468
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2489
2469
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2581,7 +2561,6 @@ declare const InteractiveGraph: {
2581
2561
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
2582
2562
  }>;
2583
2563
  keypadElement?: any;
2584
- questionCompleted?: boolean;
2585
2564
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2586
2565
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2587
2566
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2666,7 +2645,6 @@ declare const InteractiveGraph: {
2666
2645
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
2667
2646
  }>;
2668
2647
  keypadElement?: any;
2669
- questionCompleted?: boolean;
2670
2648
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2671
2649
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2672
2650
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2751,7 +2729,6 @@ declare const InteractiveGraph: {
2751
2729
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
2752
2730
  }>;
2753
2731
  keypadElement?: any;
2754
- questionCompleted?: boolean;
2755
2732
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2756
2733
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2757
2734
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2836,7 +2813,6 @@ declare const InteractiveGraph: {
2836
2813
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
2837
2814
  }>;
2838
2815
  keypadElement?: any;
2839
- questionCompleted?: boolean;
2840
2816
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2841
2817
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2842
2818
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -2921,7 +2897,6 @@ declare const InteractiveGraph: {
2921
2897
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
2922
2898
  }>;
2923
2899
  keypadElement?: any;
2924
- questionCompleted?: boolean;
2925
2900
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2926
2901
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
2927
2902
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3006,7 +2981,6 @@ declare const InteractiveGraph: {
3006
2981
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3007
2982
  }>;
3008
2983
  keypadElement?: any;
3009
- questionCompleted?: boolean;
3010
2984
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3011
2985
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3012
2986
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3092,7 +3066,6 @@ declare const InteractiveGraph: {
3092
3066
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3093
3067
  }>;
3094
3068
  keypadElement?: any;
3095
- questionCompleted?: boolean;
3096
3069
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3097
3070
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3098
3071
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3177,7 +3150,6 @@ declare const InteractiveGraph: {
3177
3150
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3178
3151
  }>;
3179
3152
  keypadElement?: any;
3180
- questionCompleted?: boolean;
3181
3153
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3182
3154
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3183
3155
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3263,7 +3235,6 @@ declare const InteractiveGraph: {
3263
3235
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3264
3236
  }>;
3265
3237
  keypadElement?: any;
3266
- questionCompleted?: boolean;
3267
3238
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3268
3239
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3269
3240
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3348,7 +3319,6 @@ declare const InteractiveGraph: {
3348
3319
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3349
3320
  }>;
3350
3321
  keypadElement?: any;
3351
- questionCompleted?: boolean;
3352
3322
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3353
3323
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3354
3324
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3433,7 +3403,6 @@ declare const InteractiveGraph: {
3433
3403
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3434
3404
  }>;
3435
3405
  keypadElement?: any;
3436
- questionCompleted?: boolean;
3437
3406
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3438
3407
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3439
3408
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3518,7 +3487,6 @@ declare const InteractiveGraph: {
3518
3487
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3519
3488
  }>;
3520
3489
  keypadElement?: any;
3521
- questionCompleted?: boolean;
3522
3490
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3523
3491
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3524
3492
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3603,7 +3571,6 @@ declare const InteractiveGraph: {
3603
3571
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3604
3572
  }>;
3605
3573
  keypadElement?: any;
3606
- questionCompleted?: boolean;
3607
3574
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3608
3575
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3609
3576
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3688,7 +3655,6 @@ declare const InteractiveGraph: {
3688
3655
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3689
3656
  }>;
3690
3657
  keypadElement?: any;
3691
- questionCompleted?: boolean;
3692
3658
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3693
3659
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3694
3660
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3773,7 +3739,6 @@ declare const InteractiveGraph: {
3773
3739
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3774
3740
  }>;
3775
3741
  keypadElement?: any;
3776
- questionCompleted?: boolean;
3777
3742
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3778
3743
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3779
3744
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3858,7 +3823,6 @@ declare const InteractiveGraph: {
3858
3823
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3859
3824
  }>;
3860
3825
  keypadElement?: any;
3861
- questionCompleted?: boolean;
3862
3826
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3863
3827
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3864
3828
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -3943,7 +3907,174 @@ declare const InteractiveGraph: {
3943
3907
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3944
3908
  }>;
3945
3909
  keypadElement?: any;
3946
- questionCompleted?: boolean;
3910
+ onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3911
+ onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3912
+ findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3913
+ reviewMode: boolean;
3914
+ showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3915
+ handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
3916
+ userInput: PerseusGraphType;
3917
+ linterContext: import("@khanacademy/perseus-linter").LinterContextProps;
3918
+ containerSizeClass: import("../../../../perseus/src/util/sizing-utils").SizeClass;
3919
+ }): string;
3920
+ defaultLogarithmCoords(props: {
3921
+ step: [number, number];
3922
+ gridStep?: [x: number, y: number];
3923
+ snapStep?: [x: number, y: number];
3924
+ backgroundImage?: PerseusImageBackground;
3925
+ markings: MarkingsType;
3926
+ labels: string[];
3927
+ labelLocation: AxisLabelLocation;
3928
+ showProtractor: boolean;
3929
+ showRuler?: boolean;
3930
+ showTooltips?: boolean;
3931
+ rulerLabel?: string;
3932
+ rulerTicks?: number;
3933
+ range: import("@khanacademy/perseus-core").GraphRange;
3934
+ showAxisArrows: ShowAxisArrows;
3935
+ graph: PerseusGraphType;
3936
+ correct?: PerseusGraphType;
3937
+ lockedFigures: LockedFigure[];
3938
+ fullGraphAriaLabel?: string;
3939
+ fullGraphAriaDescription?: string;
3940
+ } & {
3941
+ trackInteraction: (extraData?: Empty | undefined) => void;
3942
+ widgetId: string;
3943
+ widgetIndex: number;
3944
+ alignment: string | null | undefined;
3945
+ static: boolean | null | undefined;
3946
+ problemNum: number | null | undefined;
3947
+ apiOptions: Readonly<Readonly<{
3948
+ isArticle?: boolean;
3949
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
3950
+ showAlignmentOptions?: boolean;
3951
+ readOnly?: boolean;
3952
+ editingDisabled?: boolean;
3953
+ answerableCallback?: (arg1: boolean) => unknown;
3954
+ getAnotherHint?: () => unknown;
3955
+ interactionCallback?: (widgetData: {
3956
+ [widgetId: string]: any;
3957
+ }) => void;
3958
+ imagePlaceholder?: React.ReactNode;
3959
+ widgetPlaceholder?: React.ReactNode;
3960
+ baseElements?: {
3961
+ Link: React.ComponentType<any>;
3962
+ };
3963
+ imagePreloader?: (dimensions: import("../../../../perseus/src/types").Dimensions) => React.ReactNode;
3964
+ trackInteraction?: (args: {
3965
+ type: string;
3966
+ id: string;
3967
+ correct?: boolean;
3968
+ } & Partial<import("../../../../perseus/src/types").TrackingGradedGroupExtraArguments> & Partial<{
3969
+ visible: number;
3970
+ }>) => void;
3971
+ customKeypad?: boolean;
3972
+ nativeKeypadProxy?: (blur: () => void) => import("@khanacademy/math-input").KeypadAPI;
3973
+ isMobile?: boolean;
3974
+ isMobileApp?: boolean;
3975
+ setDrawingAreaAvailable?: (arg1: boolean) => unknown;
3976
+ hintProgressColor?: string;
3977
+ canScrollPage?: boolean;
3978
+ editorChangeDelay?: number;
3979
+ flags?: Record<"new-radio-widget" | "image-widget-upgrade-gif-controls" | "image-widget-upgrade-scale" | "interactive-graph-absolute-value" | "interactive-graph-tangent" | "interactive-graph-logarithm" | "interactive-graph-exponent" | "interactive-graph-vector", boolean>;
3980
+ }> & {
3981
+ baseElements: NonNullable<import("@khanacademy/perseus").APIOptions["baseElements"]>;
3982
+ canScrollPage: NonNullable<import("@khanacademy/perseus").APIOptions["canScrollPage"]>;
3983
+ editorChangeDelay: NonNullable<import("@khanacademy/perseus").APIOptions["editorChangeDelay"]>;
3984
+ isArticle: NonNullable<import("@khanacademy/perseus").APIOptions["isArticle"]>;
3985
+ isMobile: NonNullable<import("@khanacademy/perseus").APIOptions["isMobile"]>;
3986
+ isMobileApp: NonNullable<import("@khanacademy/perseus").APIOptions["isMobileApp"]>;
3987
+ editingDisabled: NonNullable<import("@khanacademy/perseus").APIOptions["editingDisabled"]>;
3988
+ onFocusChange: NonNullable<import("@khanacademy/perseus").APIOptions["onFocusChange"]>;
3989
+ readOnly: NonNullable<import("@khanacademy/perseus").APIOptions["readOnly"]>;
3990
+ setDrawingAreaAvailable: NonNullable<import("@khanacademy/perseus").APIOptions["setDrawingAreaAvailable"]>;
3991
+ showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
3992
+ }>;
3993
+ keypadElement?: any;
3994
+ onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3995
+ onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3996
+ findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
3997
+ reviewMode: boolean;
3998
+ showSolutions?: import("@khanacademy/perseus-core").ShowSolutions;
3999
+ handleUserInput: (newUserInput: PerseusGraphType, cb?: () => void, silent?: boolean) => void;
4000
+ userInput: PerseusGraphType;
4001
+ linterContext: import("@khanacademy/perseus-linter").LinterContextProps;
4002
+ containerSizeClass: import("../../../../perseus/src/util/sizing-utils").SizeClass;
4003
+ }): import("@khanacademy/perseus").Coord[];
4004
+ getLogarithmEquationString(props: {
4005
+ step: [number, number];
4006
+ gridStep?: [x: number, y: number];
4007
+ snapStep?: [x: number, y: number];
4008
+ backgroundImage?: PerseusImageBackground;
4009
+ markings: MarkingsType;
4010
+ labels: string[];
4011
+ labelLocation: AxisLabelLocation;
4012
+ showProtractor: boolean;
4013
+ showRuler?: boolean;
4014
+ showTooltips?: boolean;
4015
+ rulerLabel?: string;
4016
+ rulerTicks?: number;
4017
+ range: import("@khanacademy/perseus-core").GraphRange;
4018
+ showAxisArrows: ShowAxisArrows;
4019
+ graph: PerseusGraphType;
4020
+ correct?: PerseusGraphType;
4021
+ lockedFigures: LockedFigure[];
4022
+ fullGraphAriaLabel?: string;
4023
+ fullGraphAriaDescription?: string;
4024
+ } & {
4025
+ trackInteraction: (extraData?: Empty | undefined) => void;
4026
+ widgetId: string;
4027
+ widgetIndex: number;
4028
+ alignment: string | null | undefined;
4029
+ static: boolean | null | undefined;
4030
+ problemNum: number | null | undefined;
4031
+ apiOptions: Readonly<Readonly<{
4032
+ isArticle?: boolean;
4033
+ onFocusChange?: (newFocusPath: import("@khanacademy/perseus").FocusPath, oldFocusPath: import("@khanacademy/perseus").FocusPath, keypadHeight?: number, focusedElement?: HTMLElement) => unknown;
4034
+ showAlignmentOptions?: boolean;
4035
+ readOnly?: boolean;
4036
+ editingDisabled?: boolean;
4037
+ answerableCallback?: (arg1: boolean) => unknown;
4038
+ getAnotherHint?: () => unknown;
4039
+ interactionCallback?: (widgetData: {
4040
+ [widgetId: string]: any;
4041
+ }) => void;
4042
+ imagePlaceholder?: React.ReactNode;
4043
+ widgetPlaceholder?: React.ReactNode;
4044
+ baseElements?: {
4045
+ Link: React.ComponentType<any>;
4046
+ };
4047
+ imagePreloader?: (dimensions: import("../../../../perseus/src/types").Dimensions) => React.ReactNode;
4048
+ trackInteraction?: (args: {
4049
+ type: string;
4050
+ id: string;
4051
+ correct?: boolean;
4052
+ } & Partial<import("../../../../perseus/src/types").TrackingGradedGroupExtraArguments> & Partial<{
4053
+ visible: number;
4054
+ }>) => void;
4055
+ customKeypad?: boolean;
4056
+ nativeKeypadProxy?: (blur: () => void) => import("@khanacademy/math-input").KeypadAPI;
4057
+ isMobile?: boolean;
4058
+ isMobileApp?: boolean;
4059
+ setDrawingAreaAvailable?: (arg1: boolean) => unknown;
4060
+ hintProgressColor?: string;
4061
+ canScrollPage?: boolean;
4062
+ editorChangeDelay?: number;
4063
+ flags?: Record<"new-radio-widget" | "image-widget-upgrade-gif-controls" | "image-widget-upgrade-scale" | "interactive-graph-absolute-value" | "interactive-graph-tangent" | "interactive-graph-logarithm" | "interactive-graph-exponent" | "interactive-graph-vector", boolean>;
4064
+ }> & {
4065
+ baseElements: NonNullable<import("@khanacademy/perseus").APIOptions["baseElements"]>;
4066
+ canScrollPage: NonNullable<import("@khanacademy/perseus").APIOptions["canScrollPage"]>;
4067
+ editorChangeDelay: NonNullable<import("@khanacademy/perseus").APIOptions["editorChangeDelay"]>;
4068
+ isArticle: NonNullable<import("@khanacademy/perseus").APIOptions["isArticle"]>;
4069
+ isMobile: NonNullable<import("@khanacademy/perseus").APIOptions["isMobile"]>;
4070
+ isMobileApp: NonNullable<import("@khanacademy/perseus").APIOptions["isMobileApp"]>;
4071
+ editingDisabled: NonNullable<import("@khanacademy/perseus").APIOptions["editingDisabled"]>;
4072
+ onFocusChange: NonNullable<import("@khanacademy/perseus").APIOptions["onFocusChange"]>;
4073
+ readOnly: NonNullable<import("@khanacademy/perseus").APIOptions["readOnly"]>;
4074
+ setDrawingAreaAvailable: NonNullable<import("@khanacademy/perseus").APIOptions["setDrawingAreaAvailable"]>;
4075
+ showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4076
+ }>;
4077
+ keypadElement?: any;
3947
4078
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3948
4079
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
3949
4080
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4028,7 +4159,6 @@ declare const InteractiveGraph: {
4028
4159
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4029
4160
  }>;
4030
4161
  keypadElement?: any;
4031
- questionCompleted?: boolean;
4032
4162
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4033
4163
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4034
4164
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4113,7 +4243,6 @@ declare const InteractiveGraph: {
4113
4243
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4114
4244
  }>;
4115
4245
  keypadElement?: any;
4116
- questionCompleted?: boolean;
4117
4246
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4118
4247
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4119
4248
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4198,7 +4327,6 @@ declare const InteractiveGraph: {
4198
4327
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4199
4328
  }>;
4200
4329
  keypadElement?: any;
4201
- questionCompleted?: boolean;
4202
4330
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4203
4331
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4204
4332
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4283,7 +4411,6 @@ declare const InteractiveGraph: {
4283
4411
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4284
4412
  }>;
4285
4413
  keypadElement?: any;
4286
- questionCompleted?: boolean;
4287
4414
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4288
4415
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4289
4416
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4368,7 +4495,6 @@ declare const InteractiveGraph: {
4368
4495
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4369
4496
  }>;
4370
4497
  keypadElement?: any;
4371
- questionCompleted?: boolean;
4372
4498
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4373
4499
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4374
4500
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4453,7 +4579,6 @@ declare const InteractiveGraph: {
4453
4579
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4454
4580
  }>;
4455
4581
  keypadElement?: any;
4456
- questionCompleted?: boolean;
4457
4582
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4458
4583
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4459
4584
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4538,7 +4663,6 @@ declare const InteractiveGraph: {
4538
4663
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4539
4664
  }>;
4540
4665
  keypadElement?: any;
4541
- questionCompleted?: boolean;
4542
4666
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4543
4667
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4544
4668
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4623,7 +4747,6 @@ declare const InteractiveGraph: {
4623
4747
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4624
4748
  }>;
4625
4749
  keypadElement?: any;
4626
- questionCompleted?: boolean;
4627
4750
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4628
4751
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4629
4752
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4708,7 +4831,6 @@ declare const InteractiveGraph: {
4708
4831
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4709
4832
  }>;
4710
4833
  keypadElement?: any;
4711
- questionCompleted?: boolean;
4712
4834
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4713
4835
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4714
4836
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4793,7 +4915,6 @@ declare const InteractiveGraph: {
4793
4915
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4794
4916
  }>;
4795
4917
  keypadElement?: any;
4796
- questionCompleted?: boolean;
4797
4918
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4798
4919
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4799
4920
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -4878,7 +4999,6 @@ declare const InteractiveGraph: {
4878
4999
  showAlignmentOptions: NonNullable<import("@khanacademy/perseus").APIOptions["showAlignmentOptions"]>;
4879
5000
  }>;
4880
5001
  keypadElement?: any;
4881
- questionCompleted?: boolean;
4882
5002
  onFocus: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4883
5003
  onBlur: (blurPath: import("@khanacademy/perseus").FocusPath) => void;
4884
5004
  findWidgets: (criterion: import("../../../../perseus/src/types").FilterCriterion) => ReadonlyArray<import("../../../../perseus/src/types").Widget>;
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import type { Coord } from "@khanacademy/perseus";
3
+ type LogarithmStartCoords = {
4
+ coords: [Coord, Coord];
5
+ asymptote: number;
6
+ };
7
+ type Props = {
8
+ startCoords: LogarithmStartCoords;
9
+ onChange: (startCoords: LogarithmStartCoords) => void;
10
+ };
11
+ declare const StartCoordsLogarithm: (props: Props) => React.JSX.Element;
12
+ export default StartCoordsLogarithm;
@@ -23,6 +23,8 @@ type GraphTypesThatHaveStartCoords = {
23
23
  type: "sinusoid";
24
24
  } | {
25
25
  type: "exponential";
26
+ } | {
27
+ type: "logarithm";
26
28
  } | {
27
29
  type: "tangent";
28
30
  };
@@ -5,5 +5,6 @@ export declare function getDefaultGraphStartCoords(graph: PerseusGraphType, rang
5
5
  export declare const getSinusoidEquation: (startCoords: [Coord, Coord]) => string;
6
6
  export declare const getTangentEquation: (startCoords: [Coord, Coord]) => string;
7
7
  export declare const getQuadraticEquation: (startCoords: [Coord, Coord, Coord]) => string;
8
+ export declare const getLogarithmEquation: (coords: [Coord, Coord], asymptote: number) => string;
8
9
  export declare const getAngleEquation: (startCoords: [Coord, Coord, Coord], allowReflexAngles?: boolean) => string;
9
10
  export declare const shouldShowStartCoordsUI: (graph: PerseusGraphType, isStatic?: boolean) => boolean;