@elliemae/ds-hooks-focus-stack 3.36.0-next.0 → 3.36.0-next.2

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.
@@ -42,10 +42,8 @@ const useFocusStack = (props) => {
42
42
  const [stack, setStack] = (0, import_react.useState)([]);
43
43
  const handleOnFocus = (0, import_react.useCallback)(
44
44
  (e) => {
45
- if (e.target !== stack[0] && e.relatedTarget)
46
- setStack((prev) => [e.relatedTarget, ...prev]);
47
- else
48
- setStack((prev) => prev.length > 0 ? prev.slice(1) : prev);
45
+ if (e.target !== stack[0] && e.relatedTarget) setStack((prev) => [e.relatedTarget, ...prev]);
46
+ else setStack((prev) => prev.length > 0 ? prev.slice(1) : prev);
49
47
  },
50
48
  [stack]
51
49
  );
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/DSHooksFocusStack.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import { useCallback, useMemo, useState } from 'react';\nimport { useOnBlurOut } from '@elliemae/ds-utilities';\nimport { describe, PropTypes } from '@elliemae/ds-props-helpers';\nimport { type DSHooksFocusStackT } from './react-desc-prop-types.js';\nimport { propTypes } from './react-desc-prop-types.js';\nconst useFocusStack = (props: DSHooksFocusStackT.Props) => {\n const { fallBackRef } = props;\n const [stack, setStack] = useState<HTMLElement[]>([]);\n\n const handleOnFocus: React.FocusEventHandler<HTMLElement> = useCallback(\n (e) => {\n // check if the new focused element is not the first element in the stack\n // if it is, remove it from the stack\n if (e.target !== stack[0] && e.relatedTarget) setStack((prev) => [e.relatedTarget as HTMLElement, ...prev]);\n else setStack((prev) => (prev.length > 0 ? prev.slice(1) : prev));\n },\n [stack],\n );\n\n const config = useMemo(\n () => ({\n onBlur: () => setStack([]),\n }),\n [],\n );\n const handleOnBlur = useOnBlurOut(config);\n\n const focusLastElement = useCallback(() => {\n if (stack.length > 0 && stack[0]?.checkVisibility()) {\n stack[0]?.focus();\n } else {\n fallBackRef.current?.focus();\n }\n }, [fallBackRef, stack]);\n\n return useMemo(\n () => ({ trackFocus: handleOnFocus, cleanStack: handleOnBlur, stack, focusLastElement }),\n [handleOnFocus, handleOnBlur, stack, focusLastElement],\n );\n};\n\nconst UseFocusStackWithSchema = describe(useFocusStack);\nUseFocusStackWithSchema.propTypes = propTypes;\nUseFocusStackWithSchema.returnType = {\n stack: PropTypes.object.description('The stack of elements that have been focused').isRequired,\n trackFocus: PropTypes.func\n .description('The function to be invoked when focus enters the wrapping container')\n .signature('((e: React.FocusEvent<HTMLElement>) => void)').isRequired,\n cleanStack: PropTypes.func\n .description('The function to be invoked when focus exits the wrapping container')\n .signature('((e: React.FocusEvent<HTMLElement>) => void)').isRequired,\n focusLastElement: PropTypes.func.description('Focuses the last element in the stack').signature('() => void')\n .isRequired,\n};\nexport { useFocusStack, UseFocusStackWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+C;AAC/C,0BAA6B;AAC7B,8BAAoC;AAEpC,IAAAA,gCAA0B;AAC1B,MAAM,gBAAgB,CAAC,UAAoC;AACzD,QAAM,EAAE,YAAY,IAAI;AACxB,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAwB,CAAC,CAAC;AAEpD,QAAM,oBAAsD;AAAA,IAC1D,CAAC,MAAM;AAGL,UAAI,EAAE,WAAW,MAAM,CAAC,KAAK,EAAE;AAAe,iBAAS,CAAC,SAAS,CAAC,EAAE,eAA8B,GAAG,IAAI,CAAC;AAAA;AACrG,iBAAS,CAAC,SAAU,KAAK,SAAS,IAAI,KAAK,MAAM,CAAC,IAAI,IAAK;AAAA,IAClE;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,aAAS;AAAA,IACb,OAAO;AAAA,MACL,QAAQ,MAAM,SAAS,CAAC,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC;AAAA,EACH;AACA,QAAM,mBAAe,kCAAa,MAAM;AAExC,QAAM,uBAAmB,0BAAY,MAAM;AACzC,QAAI,MAAM,SAAS,KAAK,MAAM,CAAC,GAAG,gBAAgB,GAAG;AACnD,YAAM,CAAC,GAAG,MAAM;AAAA,IAClB,OAAO;AACL,kBAAY,SAAS,MAAM;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,aAAa,KAAK,CAAC;AAEvB,aAAO;AAAA,IACL,OAAO,EAAE,YAAY,eAAe,YAAY,cAAc,OAAO,iBAAiB;AAAA,IACtF,CAAC,eAAe,cAAc,OAAO,gBAAgB;AAAA,EACvD;AACF;AAEA,MAAM,8BAA0B,kCAAS,aAAa;AACtD,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AAAA,EACnC,OAAO,kCAAU,OAAO,YAAY,8CAA8C,EAAE;AAAA,EACpF,YAAY,kCAAU,KACnB,YAAY,qEAAqE,EACjF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,YAAY,kCAAU,KACnB,YAAY,oEAAoE,EAChF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,kBAAkB,kCAAU,KAAK,YAAY,uCAAuC,EAAE,UAAU,YAAY,EACzG;AACL;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+C;AAC/C,0BAA6B;AAC7B,8BAAoC;AAEpC,IAAAA,gCAA0B;AAC1B,MAAM,gBAAgB,CAAC,UAAoC;AACzD,QAAM,EAAE,YAAY,IAAI;AACxB,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAwB,CAAC,CAAC;AAEpD,QAAM,oBAAsD;AAAA,IAC1D,CAAC,MAAM;AAGL,UAAI,EAAE,WAAW,MAAM,CAAC,KAAK,EAAE,cAAe,UAAS,CAAC,SAAS,CAAC,EAAE,eAA8B,GAAG,IAAI,CAAC;AAAA,UACrG,UAAS,CAAC,SAAU,KAAK,SAAS,IAAI,KAAK,MAAM,CAAC,IAAI,IAAK;AAAA,IAClE;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,aAAS;AAAA,IACb,OAAO;AAAA,MACL,QAAQ,MAAM,SAAS,CAAC,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC;AAAA,EACH;AACA,QAAM,mBAAe,kCAAa,MAAM;AAExC,QAAM,uBAAmB,0BAAY,MAAM;AACzC,QAAI,MAAM,SAAS,KAAK,MAAM,CAAC,GAAG,gBAAgB,GAAG;AACnD,YAAM,CAAC,GAAG,MAAM;AAAA,IAClB,OAAO;AACL,kBAAY,SAAS,MAAM;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,aAAa,KAAK,CAAC;AAEvB,aAAO;AAAA,IACL,OAAO,EAAE,YAAY,eAAe,YAAY,cAAc,OAAO,iBAAiB;AAAA,IACtF,CAAC,eAAe,cAAc,OAAO,gBAAgB;AAAA,EACvD;AACF;AAEA,MAAM,8BAA0B,kCAAS,aAAa;AACtD,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AAAA,EACnC,OAAO,kCAAU,OAAO,YAAY,8CAA8C,EAAE;AAAA,EACpF,YAAY,kCAAU,KACnB,YAAY,qEAAqE,EACjF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,YAAY,kCAAU,KACnB,YAAY,oEAAoE,EAChF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,kBAAkB,kCAAU,KAAK,YAAY,uCAAuC,EAAE,UAAU,YAAY,EACzG;AACL;",
6
6
  "names": ["import_react_desc_prop_types"]
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -34,5 +34,4 @@ __export(src_exports, {
34
34
  module.exports = __toCommonJS(src_exports);
35
35
  var React = __toESM(require("react"));
36
36
  var import_DSHooksFocusStack = require("./DSHooksFocusStack.js");
37
- var import_react_desc_prop_types = require("./react-desc-prop-types.js");
38
37
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts", "../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["export { UseFocusStackWithSchema, useFocusStack } from './DSHooksFocusStack.js';\nexport { type DSHooksFocusStackT } from './react-desc-prop-types.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAuD;AACvD,mCAAwC;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAuD;",
6
6
  "names": []
7
7
  }
@@ -8,10 +8,8 @@ const useFocusStack = (props) => {
8
8
  const [stack, setStack] = useState([]);
9
9
  const handleOnFocus = useCallback(
10
10
  (e) => {
11
- if (e.target !== stack[0] && e.relatedTarget)
12
- setStack((prev) => [e.relatedTarget, ...prev]);
13
- else
14
- setStack((prev) => prev.length > 0 ? prev.slice(1) : prev);
11
+ if (e.target !== stack[0] && e.relatedTarget) setStack((prev) => [e.relatedTarget, ...prev]);
12
+ else setStack((prev) => prev.length > 0 ? prev.slice(1) : prev);
15
13
  },
16
14
  [stack]
17
15
  );
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/DSHooksFocusStack.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback, useMemo, useState } from 'react';\nimport { useOnBlurOut } from '@elliemae/ds-utilities';\nimport { describe, PropTypes } from '@elliemae/ds-props-helpers';\nimport { type DSHooksFocusStackT } from './react-desc-prop-types.js';\nimport { propTypes } from './react-desc-prop-types.js';\nconst useFocusStack = (props: DSHooksFocusStackT.Props) => {\n const { fallBackRef } = props;\n const [stack, setStack] = useState<HTMLElement[]>([]);\n\n const handleOnFocus: React.FocusEventHandler<HTMLElement> = useCallback(\n (e) => {\n // check if the new focused element is not the first element in the stack\n // if it is, remove it from the stack\n if (e.target !== stack[0] && e.relatedTarget) setStack((prev) => [e.relatedTarget as HTMLElement, ...prev]);\n else setStack((prev) => (prev.length > 0 ? prev.slice(1) : prev));\n },\n [stack],\n );\n\n const config = useMemo(\n () => ({\n onBlur: () => setStack([]),\n }),\n [],\n );\n const handleOnBlur = useOnBlurOut(config);\n\n const focusLastElement = useCallback(() => {\n if (stack.length > 0 && stack[0]?.checkVisibility()) {\n stack[0]?.focus();\n } else {\n fallBackRef.current?.focus();\n }\n }, [fallBackRef, stack]);\n\n return useMemo(\n () => ({ trackFocus: handleOnFocus, cleanStack: handleOnBlur, stack, focusLastElement }),\n [handleOnFocus, handleOnBlur, stack, focusLastElement],\n );\n};\n\nconst UseFocusStackWithSchema = describe(useFocusStack);\nUseFocusStackWithSchema.propTypes = propTypes;\nUseFocusStackWithSchema.returnType = {\n stack: PropTypes.object.description('The stack of elements that have been focused').isRequired,\n trackFocus: PropTypes.func\n .description('The function to be invoked when focus enters the wrapping container')\n .signature('((e: React.FocusEvent<HTMLElement>) => void)').isRequired,\n cleanStack: PropTypes.func\n .description('The function to be invoked when focus exits the wrapping container')\n .signature('((e: React.FocusEvent<HTMLElement>) => void)').isRequired,\n focusLastElement: PropTypes.func.description('Focuses the last element in the stack').signature('() => void')\n .isRequired,\n};\nexport { useFocusStack, UseFocusStackWithSchema };\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,aAAa,SAAS,gBAAgB;AAC/C,SAAS,oBAAoB;AAC7B,SAAS,UAAU,iBAAiB;AAEpC,SAAS,iBAAiB;AAC1B,MAAM,gBAAgB,CAAC,UAAoC;AACzD,QAAM,EAAE,YAAY,IAAI;AACxB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,CAAC,CAAC;AAEpD,QAAM,gBAAsD;AAAA,IAC1D,CAAC,MAAM;AAGL,UAAI,EAAE,WAAW,MAAM,CAAC,KAAK,EAAE;AAAe,iBAAS,CAAC,SAAS,CAAC,EAAE,eAA8B,GAAG,IAAI,CAAC;AAAA;AACrG,iBAAS,CAAC,SAAU,KAAK,SAAS,IAAI,KAAK,MAAM,CAAC,IAAI,IAAK;AAAA,IAClE;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,SAAS;AAAA,IACb,OAAO;AAAA,MACL,QAAQ,MAAM,SAAS,CAAC,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC;AAAA,EACH;AACA,QAAM,eAAe,aAAa,MAAM;AAExC,QAAM,mBAAmB,YAAY,MAAM;AACzC,QAAI,MAAM,SAAS,KAAK,MAAM,CAAC,GAAG,gBAAgB,GAAG;AACnD,YAAM,CAAC,GAAG,MAAM;AAAA,IAClB,OAAO;AACL,kBAAY,SAAS,MAAM;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,aAAa,KAAK,CAAC;AAEvB,SAAO;AAAA,IACL,OAAO,EAAE,YAAY,eAAe,YAAY,cAAc,OAAO,iBAAiB;AAAA,IACtF,CAAC,eAAe,cAAc,OAAO,gBAAgB;AAAA,EACvD;AACF;AAEA,MAAM,0BAA0B,SAAS,aAAa;AACtD,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AAAA,EACnC,OAAO,UAAU,OAAO,YAAY,8CAA8C,EAAE;AAAA,EACpF,YAAY,UAAU,KACnB,YAAY,qEAAqE,EACjF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,YAAY,UAAU,KACnB,YAAY,oEAAoE,EAChF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,kBAAkB,UAAU,KAAK,YAAY,uCAAuC,EAAE,UAAU,YAAY,EACzG;AACL;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,aAAa,SAAS,gBAAgB;AAC/C,SAAS,oBAAoB;AAC7B,SAAS,UAAU,iBAAiB;AAEpC,SAAS,iBAAiB;AAC1B,MAAM,gBAAgB,CAAC,UAAoC;AACzD,QAAM,EAAE,YAAY,IAAI;AACxB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,CAAC,CAAC;AAEpD,QAAM,gBAAsD;AAAA,IAC1D,CAAC,MAAM;AAGL,UAAI,EAAE,WAAW,MAAM,CAAC,KAAK,EAAE,cAAe,UAAS,CAAC,SAAS,CAAC,EAAE,eAA8B,GAAG,IAAI,CAAC;AAAA,UACrG,UAAS,CAAC,SAAU,KAAK,SAAS,IAAI,KAAK,MAAM,CAAC,IAAI,IAAK;AAAA,IAClE;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAEA,QAAM,SAAS;AAAA,IACb,OAAO;AAAA,MACL,QAAQ,MAAM,SAAS,CAAC,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC;AAAA,EACH;AACA,QAAM,eAAe,aAAa,MAAM;AAExC,QAAM,mBAAmB,YAAY,MAAM;AACzC,QAAI,MAAM,SAAS,KAAK,MAAM,CAAC,GAAG,gBAAgB,GAAG;AACnD,YAAM,CAAC,GAAG,MAAM;AAAA,IAClB,OAAO;AACL,kBAAY,SAAS,MAAM;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,aAAa,KAAK,CAAC;AAEvB,SAAO;AAAA,IACL,OAAO,EAAE,YAAY,eAAe,YAAY,cAAc,OAAO,iBAAiB;AAAA,IACtF,CAAC,eAAe,cAAc,OAAO,gBAAgB;AAAA,EACvD;AACF;AAEA,MAAM,0BAA0B,SAAS,aAAa;AACtD,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AAAA,EACnC,OAAO,UAAU,OAAO,YAAY,8CAA8C,EAAE;AAAA,EACpF,YAAY,UAAU,KACnB,YAAY,qEAAqE,EACjF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,YAAY,UAAU,KACnB,YAAY,oEAAoE,EAChF,UAAU,8CAA8C,EAAE;AAAA,EAC7D,kBAAkB,UAAU,KAAK,YAAY,uCAAuC,EAAE,UAAU,YAAY,EACzG;AACL;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as React from "react";
2
2
  import { UseFocusStackWithSchema, useFocusStack } from "./DSHooksFocusStack.js";
3
- import {} from "./react-desc-prop-types.js";
4
3
  export {
5
4
  UseFocusStackWithSchema,
6
5
  useFocusStack
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/index.ts"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { UseFocusStackWithSchema, useFocusStack } from './DSHooksFocusStack.js';\nexport { type DSHooksFocusStackT } from './react-desc-prop-types.js';\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,yBAAyB,qBAAqB;AACvD,eAAwC;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,yBAAyB,qBAAqB;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-hooks-focus-stack",
3
- "version": "3.36.0-next.0",
3
+ "version": "3.36.0-next.2",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Hooks Focus Stack",
6
6
  "files": [
@@ -36,15 +36,15 @@
36
36
  "indent": 4
37
37
  },
38
38
  "dependencies": {
39
- "@elliemae/ds-props-helpers": "3.36.0-next.0",
40
- "@elliemae/ds-utilities": "3.36.0-next.0"
39
+ "@elliemae/ds-props-helpers": "3.36.0-next.2",
40
+ "@elliemae/ds-utilities": "3.36.0-next.2"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@elliemae/pui-cli": "~9.0.0-next.31",
44
44
  "@xstyled/system": "3.7.0",
45
45
  "styled-components": "~5.3.9",
46
46
  "styled-system": "~5.1.5",
47
- "@elliemae/ds-monorepo-devops": "3.36.0-next.0"
47
+ "@elliemae/ds-monorepo-devops": "3.36.0-next.2"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "lodash": "^4.17.21",