@khanacademy/keypad-context 1.1.7 → 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 +10 -47
- package/dist/index.js.map +1 -1
- package/package.json +14 -7
- package/dist/es/index.js +0 -48
- package/dist/es/index.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,40 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useState, useMemo } from 'react';
|
|
2
3
|
|
|
3
|
-
|
|
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
|
-
|
|
49
|
-
const [
|
|
50
|
-
|
|
51
|
-
const [
|
|
52
|
-
|
|
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
|
|
29
|
+
return React.createElement(KeypadContext.Provider, {
|
|
66
30
|
value: memoizedValue
|
|
67
31
|
}, props.children);
|
|
68
32
|
}
|
|
69
33
|
|
|
70
|
-
|
|
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":"
|
|
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": "
|
|
6
|
+
"version": "2.0.0",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -15,19 +15,26 @@
|
|
|
15
15
|
"bugs": {
|
|
16
16
|
"url": "https://github.com/Khan/perseus/issues"
|
|
17
17
|
},
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
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": "
|
|
26
|
-
"@khanacademy/perseus-utils": "0.0
|
|
32
|
+
"@khanacademy/perseus-core": "6.0.0",
|
|
33
|
+
"@khanacademy/perseus-utils": "1.0.0"
|
|
27
34
|
},
|
|
28
35
|
"devDependencies": {
|
|
29
36
|
"react": "^18.2.0",
|
|
30
|
-
"perseus-build-settings": "0.
|
|
37
|
+
"perseus-build-settings": "0.6.0"
|
|
31
38
|
},
|
|
32
39
|
"peerDependencies": {
|
|
33
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
|
package/dist/es/index.js.map
DELETED
|
@@ -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;;;;"}
|