@khanacademy/math-input 15.1.0 → 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 (138) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/components/keypad/index.d.ts +1 -1
  3. package/dist/components/keypad/mobile-keypad-internals.d.ts +49 -0
  4. package/dist/components/keypad/mobile-keypad.d.ts +4 -48
  5. package/dist/es/index.js +168 -4740
  6. package/dist/es/index.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js +166 -4722
  9. package/dist/index.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/components/__tests__/integration.test.tsx +2 -3
  12. package/src/components/keypad/__tests__/mobile-keypad.test.tsx +8 -8
  13. package/src/components/keypad/index.tsx +1 -1
  14. package/src/components/keypad/mobile-keypad-internals.tsx +240 -0
  15. package/src/components/keypad/mobile-keypad.tsx +21 -234
  16. package/src/full-mobile-input.stories.tsx +0 -1
  17. package/src/index.ts +1 -1
  18. package/tsconfig-build.tsbuildinfo +1 -1
  19. package/dist/components/keypad-legacy/compute-layout-parameters.d.ts +0 -28
  20. package/dist/components/keypad-legacy/corner-decal.d.ts +0 -12
  21. package/dist/components/keypad-legacy/echo-manager.d.ts +0 -17
  22. package/dist/components/keypad-legacy/empty-keypad-button.d.ts +0 -13
  23. package/dist/components/keypad-legacy/expression-keypad.d.ts +0 -21
  24. package/dist/components/keypad-legacy/fraction-keypad.d.ts +0 -21
  25. package/dist/components/keypad-legacy/gesture-manager.d.ts +0 -86
  26. package/dist/components/keypad-legacy/gesture-state-machine.d.ts +0 -105
  27. package/dist/components/keypad-legacy/icon.d.ts +0 -15
  28. package/dist/components/keypad-legacy/index.d.ts +0 -1
  29. package/dist/components/keypad-legacy/keypad-button.d.ts +0 -53
  30. package/dist/components/keypad-legacy/keypad-container.d.ts +0 -41
  31. package/dist/components/keypad-legacy/keypad.d.ts +0 -31
  32. package/dist/components/keypad-legacy/many-keypad-button.d.ts +0 -15
  33. package/dist/components/keypad-legacy/math-icon.d.ts +0 -16
  34. package/dist/components/keypad-legacy/multi-symbol-grid.d.ts +0 -14
  35. package/dist/components/keypad-legacy/multi-symbol-popover.d.ts +0 -12
  36. package/dist/components/keypad-legacy/navigation-pad.d.ts +0 -14
  37. package/dist/components/keypad-legacy/node-manager.d.ts +0 -49
  38. package/dist/components/keypad-legacy/popover-manager.d.ts +0 -13
  39. package/dist/components/keypad-legacy/popover-state-machine.d.ts +0 -68
  40. package/dist/components/keypad-legacy/provided-keypad.d.ts +0 -28
  41. package/dist/components/keypad-legacy/store/actions.d.ts +0 -55
  42. package/dist/components/keypad-legacy/store/echo-reducer.d.ts +0 -4
  43. package/dist/components/keypad-legacy/store/index.d.ts +0 -9
  44. package/dist/components/keypad-legacy/store/input-reducer.d.ts +0 -4
  45. package/dist/components/keypad-legacy/store/keypad-reducer.d.ts +0 -4
  46. package/dist/components/keypad-legacy/store/layout-reducer.d.ts +0 -4
  47. package/dist/components/keypad-legacy/store/shared.d.ts +0 -7
  48. package/dist/components/keypad-legacy/store/types.d.ts +0 -47
  49. package/dist/components/keypad-legacy/styles.d.ts +0 -5
  50. package/dist/components/keypad-legacy/svg-icon.d.ts +0 -12
  51. package/dist/components/keypad-legacy/text-icon.d.ts +0 -13
  52. package/dist/components/keypad-legacy/touchable-keypad-button.d.ts +0 -37
  53. package/dist/components/keypad-legacy/two-page-keypad.d.ts +0 -21
  54. package/dist/components/keypad-legacy/z-indexes.d.ts +0 -7
  55. package/dist/components/keypad-switch.d.ts +0 -12
  56. package/src/components/keypad-legacy/__tests__/gesture-state-machine.test.ts +0 -441
  57. package/src/components/keypad-legacy/__tests__/node-manager.test.ts +0 -89
  58. package/src/components/keypad-legacy/compute-layout-parameters.ts +0 -205
  59. package/src/components/keypad-legacy/corner-decal.tsx +0 -56
  60. package/src/components/keypad-legacy/echo-manager.tsx +0 -152
  61. package/src/components/keypad-legacy/empty-keypad-button.tsx +0 -58
  62. package/src/components/keypad-legacy/expression-keypad.tsx +0 -315
  63. package/src/components/keypad-legacy/fraction-keypad.tsx +0 -180
  64. package/src/components/keypad-legacy/gesture-manager.ts +0 -255
  65. package/src/components/keypad-legacy/gesture-state-machine.ts +0 -329
  66. package/src/components/keypad-legacy/icon.tsx +0 -72
  67. package/src/components/keypad-legacy/iconography/arrow.js +0 -22
  68. package/src/components/keypad-legacy/iconography/backspace.js +0 -29
  69. package/src/components/keypad-legacy/iconography/cdot.js +0 -29
  70. package/src/components/keypad-legacy/iconography/cos.js +0 -30
  71. package/src/components/keypad-legacy/iconography/cube-root.js +0 -36
  72. package/src/components/keypad-legacy/iconography/dismiss.js +0 -25
  73. package/src/components/keypad-legacy/iconography/divide.js +0 -34
  74. package/src/components/keypad-legacy/iconography/down.js +0 -16
  75. package/src/components/keypad-legacy/iconography/equal.js +0 -33
  76. package/src/components/keypad-legacy/iconography/exp-2.js +0 -29
  77. package/src/components/keypad-legacy/iconography/exp-3.js +0 -29
  78. package/src/components/keypad-legacy/iconography/exp.js +0 -29
  79. package/src/components/keypad-legacy/iconography/frac.js +0 -44
  80. package/src/components/keypad-legacy/iconography/geq.js +0 -33
  81. package/src/components/keypad-legacy/iconography/gt.js +0 -33
  82. package/src/components/keypad-legacy/iconography/index.js +0 -45
  83. package/src/components/keypad-legacy/iconography/jump-into-numerator.js +0 -41
  84. package/src/components/keypad-legacy/iconography/jump-out-base.js +0 -30
  85. package/src/components/keypad-legacy/iconography/jump-out-denominator.js +0 -41
  86. package/src/components/keypad-legacy/iconography/jump-out-exponent.js +0 -30
  87. package/src/components/keypad-legacy/iconography/jump-out-numerator.js +0 -41
  88. package/src/components/keypad-legacy/iconography/jump-out-parentheses.js +0 -33
  89. package/src/components/keypad-legacy/iconography/left-paren.js +0 -33
  90. package/src/components/keypad-legacy/iconography/left.js +0 -16
  91. package/src/components/keypad-legacy/iconography/leq.js +0 -33
  92. package/src/components/keypad-legacy/iconography/ln.js +0 -29
  93. package/src/components/keypad-legacy/iconography/log-n.js +0 -29
  94. package/src/components/keypad-legacy/iconography/log.js +0 -29
  95. package/src/components/keypad-legacy/iconography/lt.js +0 -33
  96. package/src/components/keypad-legacy/iconography/minus.js +0 -32
  97. package/src/components/keypad-legacy/iconography/neq.js +0 -33
  98. package/src/components/keypad-legacy/iconography/parens.js +0 -33
  99. package/src/components/keypad-legacy/iconography/percent.js +0 -49
  100. package/src/components/keypad-legacy/iconography/period.js +0 -26
  101. package/src/components/keypad-legacy/iconography/plus.js +0 -32
  102. package/src/components/keypad-legacy/iconography/radical.js +0 -36
  103. package/src/components/keypad-legacy/iconography/right-paren.js +0 -33
  104. package/src/components/keypad-legacy/iconography/right.js +0 -16
  105. package/src/components/keypad-legacy/iconography/sin.js +0 -30
  106. package/src/components/keypad-legacy/iconography/sqrt.js +0 -32
  107. package/src/components/keypad-legacy/iconography/tan.js +0 -30
  108. package/src/components/keypad-legacy/iconography/times.js +0 -33
  109. package/src/components/keypad-legacy/iconography/up.js +0 -16
  110. package/src/components/keypad-legacy/index.ts +0 -1
  111. package/src/components/keypad-legacy/keypad-button.tsx +0 -368
  112. package/src/components/keypad-legacy/keypad-container.tsx +0 -358
  113. package/src/components/keypad-legacy/keypad.tsx +0 -162
  114. package/src/components/keypad-legacy/many-keypad-button.tsx +0 -54
  115. package/src/components/keypad-legacy/math-icon.tsx +0 -66
  116. package/src/components/keypad-legacy/multi-symbol-grid.tsx +0 -182
  117. package/src/components/keypad-legacy/multi-symbol-popover.tsx +0 -58
  118. package/src/components/keypad-legacy/navigation-pad.tsx +0 -140
  119. package/src/components/keypad-legacy/node-manager.ts +0 -133
  120. package/src/components/keypad-legacy/popover-manager.tsx +0 -73
  121. package/src/components/keypad-legacy/popover-state-machine.ts +0 -184
  122. package/src/components/keypad-legacy/provided-keypad.tsx +0 -136
  123. package/src/components/keypad-legacy/store/actions.ts +0 -155
  124. package/src/components/keypad-legacy/store/echo-reducer.ts +0 -57
  125. package/src/components/keypad-legacy/store/index.ts +0 -110
  126. package/src/components/keypad-legacy/store/input-reducer.ts +0 -55
  127. package/src/components/keypad-legacy/store/keypad-reducer.ts +0 -58
  128. package/src/components/keypad-legacy/store/layout-reducer.test.ts +0 -171
  129. package/src/components/keypad-legacy/store/layout-reducer.ts +0 -129
  130. package/src/components/keypad-legacy/store/shared.ts +0 -12
  131. package/src/components/keypad-legacy/store/types.ts +0 -78
  132. package/src/components/keypad-legacy/styles.ts +0 -38
  133. package/src/components/keypad-legacy/svg-icon.tsx +0 -24
  134. package/src/components/keypad-legacy/text-icon.tsx +0 -53
  135. package/src/components/keypad-legacy/touchable-keypad-button.tsx +0 -163
  136. package/src/components/keypad-legacy/two-page-keypad.tsx +0 -115
  137. package/src/components/keypad-legacy/z-indexes.ts +0 -8
  138. package/src/components/keypad-switch.tsx +0 -42
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
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
+
3
14
  ## 15.1.0
4
15
 
5
16
  ### Minor Changes
@@ -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 {};