@khanacademy/keypad-context 1.1.6 → 2.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.
package/dist/index.js CHANGED
@@ -1,40 +1,7 @@
1
- 'use strict';
1
+ import * as React from 'react';
2
+ import { useState, useMemo } from 'react';
2
3
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
-
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule) return e;
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () { return e[k]; }
17
- });
18
- }
19
- });
20
- }
21
- n["default"] = e;
22
- return Object.freeze(n);
23
- }
24
-
25
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
-
27
- /**
28
- * KeypadContext provides a way to the Keypad and Perseus Renderers to
29
- * communicate.
30
- *
31
- * The StatefulKeypadContextProvider wraps the application
32
- * while KeypadContext.Consumer wraps things that need this state:
33
- * - mobile keypad usages
34
- * - Perseus Renderers (Server/Item/Article)
35
- */
36
- // @ts-expect-error - TS2322 - Type 'Context<{ setKeypadElement: (keypadElement: HTMLElement | null | undefined) => void; keypadElement: null; setRenderer: (renderer: RendererInterface | null | undefined) => void; renderer: null; setScrollableElement: (scrollableElement: HTMLElement | ... 1 more ... | undefined) => void; scrollableElement: null; }>' is not assignable to type 'Context<KeypadContext>'.
37
- const KeypadContext = /*#__PURE__*/React__namespace.createContext({
4
+ const KeypadContext = React.createContext({
38
5
  setKeypadActive: keypadActive => {},
39
6
  keypadActive: false,
40
7
  setKeypadElement: keypadElement => {},
@@ -45,14 +12,11 @@ const KeypadContext = /*#__PURE__*/React__namespace.createContext({
45
12
  scrollableElement: null
46
13
  });
47
14
  function StatefulKeypadContextProvider(props) {
48
- // whether or not to display the keypad
49
- const [keypadActive, setKeypadActive] = React.useState(false);
50
- // used to communicate between the keypad and the Renderer
51
- const [keypadElement, setKeypadElement] = React.useState();
52
- // this is a KeypadContextRendererInterface from Perseus
53
- const [renderer, setRenderer] = React.useState();
54
- const [scrollableElement, setScrollableElement] = React.useState();
55
- const memoizedValue = React.useMemo(() => ({
15
+ const [keypadActive, setKeypadActive] = useState(false);
16
+ const [keypadElement, setKeypadElement] = useState();
17
+ const [renderer, setRenderer] = useState();
18
+ const [scrollableElement, setScrollableElement] = useState();
19
+ const memoizedValue = useMemo(() => ({
56
20
  keypadActive,
57
21
  setKeypadActive,
58
22
  keypadElement,
@@ -62,11 +26,10 @@ function StatefulKeypadContextProvider(props) {
62
26
  scrollableElement,
63
27
  setScrollableElement
64
28
  }), [keypadActive, setKeypadActive, keypadElement, setKeypadElement, renderer, setRenderer, scrollableElement, setScrollableElement]);
65
- return /*#__PURE__*/React__namespace.createElement(KeypadContext.Provider, {
29
+ return React.createElement(KeypadContext.Provider, {
66
30
  value: memoizedValue
67
31
  }, props.children);
68
32
  }
69
33
 
70
- exports.KeypadContext = KeypadContext;
71
- exports.StatefulKeypadContextProvider = StatefulKeypadContextProvider;
34
+ export { KeypadContext, StatefulKeypadContextProvider };
72
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/keypad-context.tsx"],"sourcesContent":["/**\n * KeypadContext provides a way to the Keypad and Perseus Renderers to\n * communicate.\n *\n * The StatefulKeypadContextProvider wraps the application\n * while KeypadContext.Consumer wraps things that need this state:\n * - mobile keypad usages\n * - Perseus Renderers (Server/Item/Article)\n */\nimport * as React from \"react\";\nimport {useState, useMemo} from \"react\";\n\nimport type {KeypadContextType} from \"./types\";\nimport type {KeypadContextRendererInterface} from \"@khanacademy/perseus-core\";\n\n// @ts-expect-error - TS2322 - Type 'Context<{ setKeypadElement: (keypadElement: HTMLElement | null | undefined) => void; keypadElement: null; setRenderer: (renderer: RendererInterface | null | undefined) => void; renderer: null; setScrollableElement: (scrollableElement: HTMLElement | ... 1 more ... | undefined) => void; scrollableElement: null; }>' is not assignable to type 'Context<KeypadContext>'.\nexport const KeypadContext: React.Context<KeypadContextType> =\n React.createContext({\n setKeypadActive: (keypadActive) => {},\n keypadActive: false,\n setKeypadElement: (keypadElement) => {},\n keypadElement: null,\n setRenderer: (renderer) => {},\n renderer: null,\n setScrollableElement: (scrollableElement) => {},\n scrollableElement: null,\n });\n\ntype Props = React.PropsWithChildren<unknown>;\n\nexport function StatefulKeypadContextProvider(props: Props) {\n // whether or not to display the keypad\n const [keypadActive, setKeypadActive] = useState<boolean>(false);\n // used to communicate between the keypad and the Renderer\n const [keypadElement, setKeypadElement] = useState<any>();\n // this is a KeypadContextRendererInterface from Perseus\n const [renderer, setRenderer] =\n useState<KeypadContextRendererInterface | null>();\n const [scrollableElement, setScrollableElement] =\n useState<HTMLElement | null>();\n\n const memoizedValue = useMemo(\n () => ({\n keypadActive,\n setKeypadActive,\n keypadElement,\n setKeypadElement,\n renderer,\n setRenderer,\n scrollableElement,\n setScrollableElement,\n }),\n [\n keypadActive,\n setKeypadActive,\n keypadElement,\n setKeypadElement,\n renderer,\n setRenderer,\n scrollableElement,\n setScrollableElement,\n ],\n );\n\n return (\n <KeypadContext.Provider value={memoizedValue}>\n {props.children}\n </KeypadContext.Provider>\n );\n}\n"],"names":["KeypadContext","React","createContext","setKeypadActive","keypadActive","setKeypadElement","keypadElement","setRenderer","renderer","setScrollableElement","scrollableElement","StatefulKeypadContextProvider","props","useState","memoizedValue","useMemo","createElement","Provider","value","children"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;MACaA,aAA+C,gBACxDC,gBAAK,CAACC,aAAa,CAAC;AAChBC,EAAAA,eAAe,EAAGC,YAAY,IAAK,EAAE;AACrCA,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,gBAAgB,EAAGC,aAAa,IAAK,EAAE;AACvCA,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,WAAW,EAAGC,QAAQ,IAAK,EAAE;AAC7BA,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,oBAAoB,EAAGC,iBAAiB,IAAK,EAAE;AAC/CA,EAAAA,iBAAiB,EAAE,IAAA;AACvB,CAAC,EAAC;AAIC,SAASC,6BAA6BA,CAACC,KAAY,EAAE;AACxD;EACA,MAAM,CAACR,YAAY,EAAED,eAAe,CAAC,GAAGU,cAAQ,CAAU,KAAK,CAAC,CAAA;AAChE;EACA,MAAM,CAACP,aAAa,EAAED,gBAAgB,CAAC,GAAGQ,cAAQ,EAAO,CAAA;AACzD;EACA,MAAM,CAACL,QAAQ,EAAED,WAAW,CAAC,GACzBM,cAAQ,EAAyC,CAAA;EACrD,MAAM,CAACH,iBAAiB,EAAED,oBAAoB,CAAC,GAC3CI,cAAQ,EAAsB,CAAA;AAElC,EAAA,MAAMC,aAAa,GAAGC,aAAO,CACzB,OAAO;IACHX,YAAY;IACZD,eAAe;IACfG,aAAa;IACbD,gBAAgB;IAChBG,QAAQ;IACRD,WAAW;IACXG,iBAAiB;AACjBD,IAAAA,oBAAAA;AACJ,GAAC,CAAC,EACF,CACIL,YAAY,EACZD,eAAe,EACfG,aAAa,EACbD,gBAAgB,EAChBG,QAAQ,EACRD,WAAW,EACXG,iBAAiB,EACjBD,oBAAoB,CAE5B,CAAC,CAAA;AAED,EAAA,oBACIR,gBAAA,CAAAe,aAAA,CAAChB,aAAa,CAACiB,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEJ,aAAAA;GAC1BF,EAAAA,KAAK,CAACO,QACa,CAAC,CAAA;AAEjC;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/keypad-context.tsx"],"sourcesContent":["/**\n * KeypadContext provides a way to the Keypad and Perseus Renderers to\n * communicate.\n *\n * The StatefulKeypadContextProvider wraps the application\n * while KeypadContext.Consumer wraps things that need this state:\n * - mobile keypad usages\n * - Perseus Renderers (Server/Item/Article)\n */\nimport * as React from \"react\";\nimport {useState, useMemo} from \"react\";\n\nimport type {KeypadContextType} from \"./types\";\nimport type {KeypadContextRendererInterface} from \"@khanacademy/perseus-core\";\n\n// @ts-expect-error - TS2322 - Type 'Context<{ setKeypadElement: (keypadElement: HTMLElement | null | undefined) => void; keypadElement: null; setRenderer: (renderer: RendererInterface | null | undefined) => void; renderer: null; setScrollableElement: (scrollableElement: HTMLElement | ... 1 more ... | undefined) => void; scrollableElement: null; }>' is not assignable to type 'Context<KeypadContext>'.\nexport const KeypadContext: React.Context<KeypadContextType> =\n React.createContext({\n setKeypadActive: (keypadActive) => {},\n keypadActive: false,\n setKeypadElement: (keypadElement) => {},\n keypadElement: null,\n setRenderer: (renderer) => {},\n renderer: null,\n setScrollableElement: (scrollableElement) => {},\n scrollableElement: null,\n });\n\ntype Props = React.PropsWithChildren<unknown>;\n\nexport function StatefulKeypadContextProvider(props: Props) {\n // whether or not to display the keypad\n const [keypadActive, setKeypadActive] = useState<boolean>(false);\n // used to communicate between the keypad and the Renderer\n const [keypadElement, setKeypadElement] = useState<any>();\n // this is a KeypadContextRendererInterface from Perseus\n const [renderer, setRenderer] =\n useState<KeypadContextRendererInterface | null>();\n const [scrollableElement, setScrollableElement] =\n useState<HTMLElement | null>();\n\n const memoizedValue = useMemo(\n () => ({\n keypadActive,\n setKeypadActive,\n keypadElement,\n setKeypadElement,\n renderer,\n setRenderer,\n scrollableElement,\n setScrollableElement,\n }),\n [\n keypadActive,\n setKeypadActive,\n keypadElement,\n setKeypadElement,\n renderer,\n setRenderer,\n scrollableElement,\n setScrollableElement,\n ],\n );\n\n return (\n <KeypadContext.Provider value={memoizedValue}>\n {props.children}\n </KeypadContext.Provider>\n );\n}\n"],"names":["KeypadContext","React","createContext","setKeypadActive","keypadActive","setKeypadElement","keypadElement","setRenderer","renderer","setScrollableElement","scrollableElement","StatefulKeypadContextProvider","props","useState","memoizedValue","useMemo","createElement","Provider","value","children"],"mappings":";;;MAgBaA,aAA+C,GACxDC,KAAK,CAACC,aAAa,CAAC;AAChBC,EAAAA,eAAe,EAAGC,YAAY,IAAK,EAAE;AACrCA,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,gBAAgB,EAAGC,aAAa,IAAK,EAAE;AACvCA,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,WAAW,EAAGC,QAAQ,IAAK,EAAE;AAC7BA,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,oBAAoB,EAAGC,iBAAiB,IAAK,EAAE;AAC/CA,EAAAA,iBAAiB,EAAE;AACvB,CAAC;AAIE,SAASC,6BAA6BA,CAACC,KAAY,EAAE;EAExD,MAAM,CAACR,YAAY,EAAED,eAAe,CAAC,GAAGU,QAAQ,CAAU,KAAK,CAAC;EAEhE,MAAM,CAACP,aAAa,EAAED,gBAAgB,CAAC,GAAGQ,QAAQ,EAAO;EAEzD,MAAM,CAACL,QAAQ,EAAED,WAAW,CAAC,GACzBM,QAAQ,EAAyC;EACrD,MAAM,CAACH,iBAAiB,EAAED,oBAAoB,CAAC,GAC3CI,QAAQ,EAAsB;AAElC,EAAA,MAAMC,aAAa,GAAGC,OAAO,CACzB,OAAO;IACHX,YAAY;IACZD,eAAe;IACfG,aAAa;IACbD,gBAAgB;IAChBG,QAAQ;IACRD,WAAW;IACXG,iBAAiB;AACjBD,IAAAA;AACJ,GAAC,CAAC,EACF,CACIL,YAAY,EACZD,eAAe,EACfG,aAAa,EACbD,gBAAgB,EAChBG,QAAQ,EACRD,WAAW,EACXG,iBAAiB,EACjBD,oBAAoB,CAE5B,CAAC;AAED,EAAA,OACIR,KAAA,CAAAe,aAAA,CAAChB,aAAa,CAACiB,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEJ;GAC1BF,EAAAA,KAAK,CAACO,QACa,CAAC;AAEjC;;;;"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Perseus keypad context",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "1.1.6",
6
+ "version": "2.0.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -15,17 +15,26 @@
15
15
  "bugs": {
16
16
  "url": "https://github.com/Khan/perseus/issues"
17
17
  },
18
- "module": "dist/es/index.js",
19
- "main": "dist/index.js",
20
- "source": "src/index.ts",
18
+ "engines": {
19
+ "node": ">=18"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "source": "./src/index.ts",
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.js"
26
+ }
27
+ },
21
28
  "files": [
22
29
  "dist"
23
30
  ],
24
31
  "dependencies": {
25
- "@khanacademy/perseus-core": "5.4.1"
32
+ "@khanacademy/perseus-core": "6.0.0",
33
+ "@khanacademy/perseus-utils": "1.0.0"
26
34
  },
27
35
  "devDependencies": {
28
- "react": "^18.2.0"
36
+ "react": "^18.2.0",
37
+ "perseus-build-settings": "0.6.0"
29
38
  },
30
39
  "peerDependencies": {
31
40
  "react": "^18.2.0"
package/dist/es/index.js DELETED
@@ -1,48 +0,0 @@
1
- import * as React from 'react';
2
- import { useState, useMemo } from 'react';
3
-
4
- /**
5
- * KeypadContext provides a way to the Keypad and Perseus Renderers to
6
- * communicate.
7
- *
8
- * The StatefulKeypadContextProvider wraps the application
9
- * while KeypadContext.Consumer wraps things that need this state:
10
- * - mobile keypad usages
11
- * - Perseus Renderers (Server/Item/Article)
12
- */
13
- // @ts-expect-error - TS2322 - Type 'Context<{ setKeypadElement: (keypadElement: HTMLElement | null | undefined) => void; keypadElement: null; setRenderer: (renderer: RendererInterface | null | undefined) => void; renderer: null; setScrollableElement: (scrollableElement: HTMLElement | ... 1 more ... | undefined) => void; scrollableElement: null; }>' is not assignable to type 'Context<KeypadContext>'.
14
- const KeypadContext = /*#__PURE__*/React.createContext({
15
- setKeypadActive: keypadActive => {},
16
- keypadActive: false,
17
- setKeypadElement: keypadElement => {},
18
- keypadElement: null,
19
- setRenderer: renderer => {},
20
- renderer: null,
21
- setScrollableElement: scrollableElement => {},
22
- scrollableElement: null
23
- });
24
- function StatefulKeypadContextProvider(props) {
25
- // whether or not to display the keypad
26
- const [keypadActive, setKeypadActive] = useState(false);
27
- // used to communicate between the keypad and the Renderer
28
- const [keypadElement, setKeypadElement] = useState();
29
- // this is a KeypadContextRendererInterface from Perseus
30
- const [renderer, setRenderer] = useState();
31
- const [scrollableElement, setScrollableElement] = useState();
32
- const memoizedValue = useMemo(() => ({
33
- keypadActive,
34
- setKeypadActive,
35
- keypadElement,
36
- setKeypadElement,
37
- renderer,
38
- setRenderer,
39
- scrollableElement,
40
- setScrollableElement
41
- }), [keypadActive, setKeypadActive, keypadElement, setKeypadElement, renderer, setRenderer, scrollableElement, setScrollableElement]);
42
- return /*#__PURE__*/React.createElement(KeypadContext.Provider, {
43
- value: memoizedValue
44
- }, props.children);
45
- }
46
-
47
- export { KeypadContext, StatefulKeypadContextProvider };
48
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/keypad-context.tsx"],"sourcesContent":["/**\n * KeypadContext provides a way to the Keypad and Perseus Renderers to\n * communicate.\n *\n * The StatefulKeypadContextProvider wraps the application\n * while KeypadContext.Consumer wraps things that need this state:\n * - mobile keypad usages\n * - Perseus Renderers (Server/Item/Article)\n */\nimport * as React from \"react\";\nimport {useState, useMemo} from \"react\";\n\nimport type {KeypadContextType} from \"./types\";\nimport type {KeypadContextRendererInterface} from \"@khanacademy/perseus-core\";\n\n// @ts-expect-error - TS2322 - Type 'Context<{ setKeypadElement: (keypadElement: HTMLElement | null | undefined) => void; keypadElement: null; setRenderer: (renderer: RendererInterface | null | undefined) => void; renderer: null; setScrollableElement: (scrollableElement: HTMLElement | ... 1 more ... | undefined) => void; scrollableElement: null; }>' is not assignable to type 'Context<KeypadContext>'.\nexport const KeypadContext: React.Context<KeypadContextType> =\n React.createContext({\n setKeypadActive: (keypadActive) => {},\n keypadActive: false,\n setKeypadElement: (keypadElement) => {},\n keypadElement: null,\n setRenderer: (renderer) => {},\n renderer: null,\n setScrollableElement: (scrollableElement) => {},\n scrollableElement: null,\n });\n\ntype Props = React.PropsWithChildren<unknown>;\n\nexport function StatefulKeypadContextProvider(props: Props) {\n // whether or not to display the keypad\n const [keypadActive, setKeypadActive] = useState<boolean>(false);\n // used to communicate between the keypad and the Renderer\n const [keypadElement, setKeypadElement] = useState<any>();\n // this is a KeypadContextRendererInterface from Perseus\n const [renderer, setRenderer] =\n useState<KeypadContextRendererInterface | null>();\n const [scrollableElement, setScrollableElement] =\n useState<HTMLElement | null>();\n\n const memoizedValue = useMemo(\n () => ({\n keypadActive,\n setKeypadActive,\n keypadElement,\n setKeypadElement,\n renderer,\n setRenderer,\n scrollableElement,\n setScrollableElement,\n }),\n [\n keypadActive,\n setKeypadActive,\n keypadElement,\n setKeypadElement,\n renderer,\n setRenderer,\n scrollableElement,\n setScrollableElement,\n ],\n );\n\n return (\n <KeypadContext.Provider value={memoizedValue}>\n {props.children}\n </KeypadContext.Provider>\n );\n}\n"],"names":["KeypadContext","React","createContext","setKeypadActive","keypadActive","setKeypadElement","keypadElement","setRenderer","renderer","setScrollableElement","scrollableElement","StatefulKeypadContextProvider","props","useState","memoizedValue","useMemo","createElement","Provider","value","children"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;MACaA,aAA+C,gBACxDC,KAAK,CAACC,aAAa,CAAC;AAChBC,EAAAA,eAAe,EAAGC,YAAY,IAAK,EAAE;AACrCA,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,gBAAgB,EAAGC,aAAa,IAAK,EAAE;AACvCA,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,WAAW,EAAGC,QAAQ,IAAK,EAAE;AAC7BA,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,oBAAoB,EAAGC,iBAAiB,IAAK,EAAE;AAC/CA,EAAAA,iBAAiB,EAAE,IAAA;AACvB,CAAC,EAAC;AAIC,SAASC,6BAA6BA,CAACC,KAAY,EAAE;AACxD;EACA,MAAM,CAACR,YAAY,EAAED,eAAe,CAAC,GAAGU,QAAQ,CAAU,KAAK,CAAC,CAAA;AAChE;EACA,MAAM,CAACP,aAAa,EAAED,gBAAgB,CAAC,GAAGQ,QAAQ,EAAO,CAAA;AACzD;EACA,MAAM,CAACL,QAAQ,EAAED,WAAW,CAAC,GACzBM,QAAQ,EAAyC,CAAA;EACrD,MAAM,CAACH,iBAAiB,EAAED,oBAAoB,CAAC,GAC3CI,QAAQ,EAAsB,CAAA;AAElC,EAAA,MAAMC,aAAa,GAAGC,OAAO,CACzB,OAAO;IACHX,YAAY;IACZD,eAAe;IACfG,aAAa;IACbD,gBAAgB;IAChBG,QAAQ;IACRD,WAAW;IACXG,iBAAiB;AACjBD,IAAAA,oBAAAA;AACJ,GAAC,CAAC,EACF,CACIL,YAAY,EACZD,eAAe,EACfG,aAAa,EACbD,gBAAgB,EAChBG,QAAQ,EACRD,WAAW,EACXG,iBAAiB,EACjBD,oBAAoB,CAE5B,CAAC,CAAA;AAED,EAAA,oBACIR,KAAA,CAAAe,aAAA,CAAChB,aAAa,CAACiB,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEJ,aAAAA;GAC1BF,EAAAA,KAAK,CAACO,QACa,CAAC,CAAA;AAEjC;;;;"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Adds the given perseus library version information to the __perseus_debug__
3
- * object and ensures that the object is attached to `globalThis` (`window` in
4
- * browser environments).
5
- *
6
- * This allows each library to provide runtime version information to assist in
7
- * debugging in production environments.
8
- */
9
- export declare const addLibraryVersionToPerseusDebug: (libraryName: string, libraryVersion: string) => void;