@khanacademy/math-input 15.0.1 → 16.0.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.
Files changed (140) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/components/aphrodite-css-transition-group/transition-child.d.ts +11 -8
  3. package/dist/components/keypad/index.d.ts +1 -1
  4. package/dist/components/keypad/mobile-keypad-internals.d.ts +49 -0
  5. package/dist/components/keypad/mobile-keypad.d.ts +4 -48
  6. package/dist/es/index.js +168 -4740
  7. package/dist/es/index.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.js +166 -4722
  10. package/dist/index.js.map +1 -1
  11. package/package.json +10 -9
  12. package/src/components/__tests__/integration.test.tsx +2 -3
  13. package/src/components/keypad/__tests__/mobile-keypad.test.tsx +8 -8
  14. package/src/components/keypad/index.tsx +1 -1
  15. package/src/components/keypad/mobile-keypad-internals.tsx +240 -0
  16. package/src/components/keypad/mobile-keypad.tsx +21 -234
  17. package/src/full-mobile-input.stories.tsx +0 -1
  18. package/src/index.ts +1 -1
  19. package/tsconfig-build.tsbuildinfo +1 -1
  20. package/dist/components/keypad-legacy/compute-layout-parameters.d.ts +0 -28
  21. package/dist/components/keypad-legacy/corner-decal.d.ts +0 -12
  22. package/dist/components/keypad-legacy/echo-manager.d.ts +0 -17
  23. package/dist/components/keypad-legacy/empty-keypad-button.d.ts +0 -13
  24. package/dist/components/keypad-legacy/expression-keypad.d.ts +0 -21
  25. package/dist/components/keypad-legacy/fraction-keypad.d.ts +0 -21
  26. package/dist/components/keypad-legacy/gesture-manager.d.ts +0 -86
  27. package/dist/components/keypad-legacy/gesture-state-machine.d.ts +0 -105
  28. package/dist/components/keypad-legacy/icon.d.ts +0 -15
  29. package/dist/components/keypad-legacy/index.d.ts +0 -1
  30. package/dist/components/keypad-legacy/keypad-button.d.ts +0 -53
  31. package/dist/components/keypad-legacy/keypad-container.d.ts +0 -41
  32. package/dist/components/keypad-legacy/keypad.d.ts +0 -31
  33. package/dist/components/keypad-legacy/many-keypad-button.d.ts +0 -15
  34. package/dist/components/keypad-legacy/math-icon.d.ts +0 -16
  35. package/dist/components/keypad-legacy/multi-symbol-grid.d.ts +0 -14
  36. package/dist/components/keypad-legacy/multi-symbol-popover.d.ts +0 -12
  37. package/dist/components/keypad-legacy/navigation-pad.d.ts +0 -14
  38. package/dist/components/keypad-legacy/node-manager.d.ts +0 -49
  39. package/dist/components/keypad-legacy/popover-manager.d.ts +0 -13
  40. package/dist/components/keypad-legacy/popover-state-machine.d.ts +0 -68
  41. package/dist/components/keypad-legacy/provided-keypad.d.ts +0 -28
  42. package/dist/components/keypad-legacy/store/actions.d.ts +0 -55
  43. package/dist/components/keypad-legacy/store/echo-reducer.d.ts +0 -4
  44. package/dist/components/keypad-legacy/store/index.d.ts +0 -9
  45. package/dist/components/keypad-legacy/store/input-reducer.d.ts +0 -4
  46. package/dist/components/keypad-legacy/store/keypad-reducer.d.ts +0 -4
  47. package/dist/components/keypad-legacy/store/layout-reducer.d.ts +0 -4
  48. package/dist/components/keypad-legacy/store/shared.d.ts +0 -7
  49. package/dist/components/keypad-legacy/store/types.d.ts +0 -47
  50. package/dist/components/keypad-legacy/styles.d.ts +0 -5
  51. package/dist/components/keypad-legacy/svg-icon.d.ts +0 -12
  52. package/dist/components/keypad-legacy/text-icon.d.ts +0 -13
  53. package/dist/components/keypad-legacy/touchable-keypad-button.d.ts +0 -37
  54. package/dist/components/keypad-legacy/two-page-keypad.d.ts +0 -21
  55. package/dist/components/keypad-legacy/z-indexes.d.ts +0 -7
  56. package/dist/components/keypad-switch.d.ts +0 -12
  57. package/src/components/keypad-legacy/__tests__/gesture-state-machine.test.ts +0 -441
  58. package/src/components/keypad-legacy/__tests__/node-manager.test.ts +0 -89
  59. package/src/components/keypad-legacy/__tests__/two-page-keypad.test.tsx +0 -38
  60. package/src/components/keypad-legacy/compute-layout-parameters.ts +0 -205
  61. package/src/components/keypad-legacy/corner-decal.tsx +0 -56
  62. package/src/components/keypad-legacy/echo-manager.tsx +0 -152
  63. package/src/components/keypad-legacy/empty-keypad-button.tsx +0 -58
  64. package/src/components/keypad-legacy/expression-keypad.tsx +0 -315
  65. package/src/components/keypad-legacy/fraction-keypad.tsx +0 -180
  66. package/src/components/keypad-legacy/gesture-manager.ts +0 -255
  67. package/src/components/keypad-legacy/gesture-state-machine.ts +0 -329
  68. package/src/components/keypad-legacy/icon.tsx +0 -72
  69. package/src/components/keypad-legacy/iconography/arrow.js +0 -22
  70. package/src/components/keypad-legacy/iconography/backspace.js +0 -29
  71. package/src/components/keypad-legacy/iconography/cdot.js +0 -29
  72. package/src/components/keypad-legacy/iconography/cos.js +0 -30
  73. package/src/components/keypad-legacy/iconography/cube-root.js +0 -36
  74. package/src/components/keypad-legacy/iconography/dismiss.js +0 -25
  75. package/src/components/keypad-legacy/iconography/divide.js +0 -34
  76. package/src/components/keypad-legacy/iconography/down.js +0 -16
  77. package/src/components/keypad-legacy/iconography/equal.js +0 -33
  78. package/src/components/keypad-legacy/iconography/exp-2.js +0 -29
  79. package/src/components/keypad-legacy/iconography/exp-3.js +0 -29
  80. package/src/components/keypad-legacy/iconography/exp.js +0 -29
  81. package/src/components/keypad-legacy/iconography/frac.js +0 -44
  82. package/src/components/keypad-legacy/iconography/geq.js +0 -33
  83. package/src/components/keypad-legacy/iconography/gt.js +0 -33
  84. package/src/components/keypad-legacy/iconography/index.js +0 -45
  85. package/src/components/keypad-legacy/iconography/jump-into-numerator.js +0 -41
  86. package/src/components/keypad-legacy/iconography/jump-out-base.js +0 -30
  87. package/src/components/keypad-legacy/iconography/jump-out-denominator.js +0 -41
  88. package/src/components/keypad-legacy/iconography/jump-out-exponent.js +0 -30
  89. package/src/components/keypad-legacy/iconography/jump-out-numerator.js +0 -41
  90. package/src/components/keypad-legacy/iconography/jump-out-parentheses.js +0 -33
  91. package/src/components/keypad-legacy/iconography/left-paren.js +0 -33
  92. package/src/components/keypad-legacy/iconography/left.js +0 -16
  93. package/src/components/keypad-legacy/iconography/leq.js +0 -33
  94. package/src/components/keypad-legacy/iconography/ln.js +0 -29
  95. package/src/components/keypad-legacy/iconography/log-n.js +0 -29
  96. package/src/components/keypad-legacy/iconography/log.js +0 -29
  97. package/src/components/keypad-legacy/iconography/lt.js +0 -33
  98. package/src/components/keypad-legacy/iconography/minus.js +0 -32
  99. package/src/components/keypad-legacy/iconography/neq.js +0 -33
  100. package/src/components/keypad-legacy/iconography/parens.js +0 -33
  101. package/src/components/keypad-legacy/iconography/percent.js +0 -49
  102. package/src/components/keypad-legacy/iconography/period.js +0 -26
  103. package/src/components/keypad-legacy/iconography/plus.js +0 -32
  104. package/src/components/keypad-legacy/iconography/radical.js +0 -36
  105. package/src/components/keypad-legacy/iconography/right-paren.js +0 -33
  106. package/src/components/keypad-legacy/iconography/right.js +0 -16
  107. package/src/components/keypad-legacy/iconography/sin.js +0 -30
  108. package/src/components/keypad-legacy/iconography/sqrt.js +0 -32
  109. package/src/components/keypad-legacy/iconography/tan.js +0 -30
  110. package/src/components/keypad-legacy/iconography/times.js +0 -33
  111. package/src/components/keypad-legacy/iconography/up.js +0 -16
  112. package/src/components/keypad-legacy/index.ts +0 -1
  113. package/src/components/keypad-legacy/keypad-button.tsx +0 -368
  114. package/src/components/keypad-legacy/keypad-container.tsx +0 -358
  115. package/src/components/keypad-legacy/keypad.tsx +0 -162
  116. package/src/components/keypad-legacy/many-keypad-button.tsx +0 -54
  117. package/src/components/keypad-legacy/math-icon.tsx +0 -66
  118. package/src/components/keypad-legacy/multi-symbol-grid.tsx +0 -182
  119. package/src/components/keypad-legacy/multi-symbol-popover.tsx +0 -58
  120. package/src/components/keypad-legacy/navigation-pad.tsx +0 -140
  121. package/src/components/keypad-legacy/node-manager.ts +0 -133
  122. package/src/components/keypad-legacy/popover-manager.tsx +0 -73
  123. package/src/components/keypad-legacy/popover-state-machine.ts +0 -184
  124. package/src/components/keypad-legacy/provided-keypad.tsx +0 -136
  125. package/src/components/keypad-legacy/store/actions.ts +0 -155
  126. package/src/components/keypad-legacy/store/echo-reducer.ts +0 -57
  127. package/src/components/keypad-legacy/store/index.ts +0 -110
  128. package/src/components/keypad-legacy/store/input-reducer.ts +0 -55
  129. package/src/components/keypad-legacy/store/keypad-reducer.ts +0 -58
  130. package/src/components/keypad-legacy/store/layout-reducer.test.ts +0 -171
  131. package/src/components/keypad-legacy/store/layout-reducer.ts +0 -129
  132. package/src/components/keypad-legacy/store/shared.ts +0 -12
  133. package/src/components/keypad-legacy/store/types.ts +0 -78
  134. package/src/components/keypad-legacy/styles.ts +0 -38
  135. package/src/components/keypad-legacy/svg-icon.tsx +0 -24
  136. package/src/components/keypad-legacy/text-icon.tsx +0 -53
  137. package/src/components/keypad-legacy/touchable-keypad-button.tsx +0 -163
  138. package/src/components/keypad-legacy/two-page-keypad.tsx +0 -115
  139. package/src/components/keypad-legacy/z-indexes.ts +0 -8
  140. package/src/components/keypad-switch.tsx +0 -42
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @khanacademy/math-input
2
2
 
3
+ ## 16.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#825](https://github.com/Khan/perseus/pull/825) [`7cb40e4c`](https://github.com/Khan/perseus/commit/7cb40e4c919be50e5ced41e4937178bbf849ec74) Thanks [@benchristel](https://github.com/benchristel)! - We've removed the deprecated `useV2Keypad` prop from the MobileKeypad component.
8
+
9
+ The V2 keypad is now the default, and the old keypad has been removed.
10
+
11
+ Additionally, the mobile keypad no longer accepts the `keypadActive` or
12
+ `setKeypadActive` props. It now gets those values itself from the `KeypadContext`.
13
+
14
+ ## 15.1.0
15
+
16
+ ### Minor Changes
17
+
18
+ - [#811](https://github.com/Khan/perseus/pull/811) [`bca527ab`](https://github.com/Khan/perseus/commit/bca527abc4d8b29942efec12509f9cf8be401e75) Thanks [@jeremywiebe](https://github.com/jeremywiebe)! - Bump all Wonder Blocks dependencies to latest
19
+
3
20
  ## 15.0.1
4
21
 
5
22
  ### Patch Changes
@@ -1,11 +1,14 @@
1
1
  import * as React from "react";
2
2
  import type { AnimationStyles } from "./types";
3
- declare const _default: (props: {
4
- children: React.ReactNode;
5
- transitionStyles: AnimationStyles | (() => AnimationStyles);
6
- appearTimeout?: number | undefined;
7
- enterTimeout?: number | undefined;
8
- leaveTimeout?: number | undefined;
9
- in?: boolean | undefined;
10
- }) => JSX.Element;
3
+ declare const _default: {
4
+ (props: {
5
+ children: React.ReactNode;
6
+ transitionStyles: AnimationStyles | (() => AnimationStyles);
7
+ appearTimeout?: number | undefined;
8
+ enterTimeout?: number | undefined;
9
+ leaveTimeout?: number | undefined;
10
+ in?: boolean | undefined;
11
+ }): JSX.Element;
12
+ displayName: string;
13
+ };
11
14
  export default _default;
@@ -1,2 +1,2 @@
1
1
  export { default } from "./keypad";
2
- export { default as MobileKeypad } from "./mobile-keypad";
2
+ export { MobileKeypad } from "./mobile-keypad";
@@ -0,0 +1,49 @@
1
+ import * as React from "react";
2
+ import ReactDOM from "react-dom";
3
+ import type Key from "../../data/keys";
4
+ import type { Cursor, KeypadConfiguration, KeyHandler, KeypadAPI } from "../../types";
5
+ import type { AnalyticsEventHandlerFn } from "@khanacademy/perseus-core";
6
+ import type { StyleType } from "@khanacademy/wonder-blocks-core";
7
+ type Props = {
8
+ onElementMounted?: (arg1: any) => void;
9
+ onDismiss?: () => void;
10
+ style?: StyleType;
11
+ onAnalyticsEvent: AnalyticsEventHandlerFn;
12
+ setKeypadActive: (keypadActive: boolean) => void;
13
+ keypadActive: boolean;
14
+ };
15
+ type State = {
16
+ containerWidth: number;
17
+ keypadConfig?: KeypadConfiguration;
18
+ keyHandler?: KeyHandler;
19
+ cursor?: Cursor;
20
+ };
21
+ /**
22
+ * This is the v2 equivalent of v1's ProvidedKeypad. It follows the same
23
+ * external API so that it can be hot-swapped with the v1 keypad and
24
+ * is responsible for connecting the keypad with MathInput and the Renderer.
25
+ *
26
+ * Ideally this strategy of attaching methods on the class component for
27
+ * other components to call will be replaced props/callbacks since React
28
+ * doesn't support this type of code anymore (functional components
29
+ * can't have methods attached to them).
30
+ */
31
+ declare class MobileKeypadInternals extends React.Component<Props, State> implements KeypadAPI {
32
+ _containerRef: React.RefObject<HTMLDivElement>;
33
+ _containerResizeObserver: ResizeObserver | null;
34
+ _throttleResize: boolean;
35
+ state: State;
36
+ componentDidMount(): void;
37
+ componentWillUnmount(): void;
38
+ _resize: () => void;
39
+ _throttleResizeHandler: () => void;
40
+ activate: () => void;
41
+ dismiss: () => void;
42
+ configure: (configuration: KeypadConfiguration, cb: () => void) => void;
43
+ setCursor: (cursor: Cursor) => void;
44
+ setKeyHandler: (keyHandler: KeyHandler) => void;
45
+ getDOMNode: () => ReturnType<typeof ReactDOM.findDOMNode>;
46
+ _handleClickKey(key: Key): void;
47
+ render(): React.ReactNode;
48
+ }
49
+ export default MobileKeypadInternals;
@@ -1,49 +1,5 @@
1
1
  import * as React from "react";
2
- import ReactDOM from "react-dom";
3
- import type Key from "../../data/keys";
4
- import type { Cursor, KeypadConfiguration, KeyHandler, KeypadAPI } from "../../types";
5
- import type { AnalyticsEventHandlerFn } from "@khanacademy/perseus-core";
6
- import type { StyleType } from "@khanacademy/wonder-blocks-core";
7
- type Props = {
8
- onElementMounted?: (arg1: any) => void;
9
- onDismiss?: () => void;
10
- style?: StyleType;
11
- onAnalyticsEvent: AnalyticsEventHandlerFn;
12
- setKeypadActive: (keypadActive: boolean) => void;
13
- keypadActive: boolean;
14
- };
15
- type State = {
16
- containerWidth: number;
17
- keypadConfig?: KeypadConfiguration;
18
- keyHandler?: KeyHandler;
19
- cursor?: Cursor;
20
- };
21
- /**
22
- * This is the v2 equivalent of v1's ProvidedKeypad. It follows the same
23
- * external API so that it can be hot-swapped with the v1 keypad and
24
- * is responsible for connecting the keypad with MathInput and the Renderer.
25
- *
26
- * Ideally this strategy of attaching methods on the class component for
27
- * other components to call will be replaced props/callbacks since React
28
- * doesn't support this type of code anymore (functional components
29
- * can't have methods attached to them).
30
- */
31
- declare class MobileKeypad extends React.Component<Props, State> implements KeypadAPI {
32
- _containerRef: React.RefObject<HTMLDivElement>;
33
- _containerResizeObserver: ResizeObserver | null;
34
- _throttleResize: boolean;
35
- state: State;
36
- componentDidMount(): void;
37
- componentWillUnmount(): void;
38
- _resize: () => void;
39
- _throttleResizeHandler: () => void;
40
- activate: () => void;
41
- dismiss: () => void;
42
- configure: (configuration: KeypadConfiguration, cb: () => void) => void;
43
- setCursor: (cursor: Cursor) => void;
44
- setKeyHandler: (keyHandler: KeyHandler) => void;
45
- getDOMNode: () => ReturnType<typeof ReactDOM.findDOMNode>;
46
- _handleClickKey(key: Key): void;
47
- render(): React.ReactNode;
48
- }
49
- export default MobileKeypad;
2
+ import MobileKeypadInternals from "./mobile-keypad-internals";
3
+ type Props = Omit<React.ComponentProps<typeof MobileKeypadInternals>, "keypadActive" | "setKeypadActive">;
4
+ export declare function MobileKeypad(props: Props): JSX.Element;
5
+ export {};