@8x8/oxygen-utils 0.0.0-stage → 3.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 (64) hide show
  1. package/LICENSE.md +2 -0
  2. package/README.md +141 -2
  3. package/dist/src/components/OutsideEventBehavior/OutsideEventBehavior.d.ts +20 -0
  4. package/dist/src/components/OutsideEventBehavior/OutsideEventBehavior.d.ts.map +1 -0
  5. package/dist/src/components/OutsideEventBehavior/OutsideEventBehavior.js +34 -0
  6. package/dist/src/components/OutsideEventBehavior/index.d.ts +3 -0
  7. package/dist/src/components/OutsideEventBehavior/index.d.ts.map +1 -0
  8. package/dist/src/components/OutsideEventBehavior/index.js +2 -0
  9. package/dist/src/functions/isReactDevMode.d.ts +2 -0
  10. package/dist/src/functions/isReactDevMode.d.ts.map +1 -0
  11. package/dist/src/functions/isReactDevMode.js +3 -0
  12. package/dist/src/functions/keyboardEvents.d.ts +9 -0
  13. package/dist/src/functions/keyboardEvents.d.ts.map +1 -0
  14. package/dist/src/functions/keyboardEvents.js +7 -0
  15. package/dist/src/functions/media.d.ts +52 -0
  16. package/dist/src/functions/media.d.ts.map +1 -0
  17. package/dist/src/functions/media.js +67 -0
  18. package/dist/src/functions/pausableTimeout.d.ts +13 -0
  19. package/dist/src/functions/pausableTimeout.d.ts.map +1 -0
  20. package/dist/src/functions/pausableTimeout.js +23 -0
  21. package/dist/src/hooks/eventKeyHandlers/EventKey.d.ts +16 -0
  22. package/dist/src/hooks/eventKeyHandlers/EventKey.d.ts.map +1 -0
  23. package/dist/src/hooks/eventKeyHandlers/EventKey.js +17 -0
  24. package/dist/src/hooks/eventKeyHandlers/focusNextElementHandler.d.ts +4 -0
  25. package/dist/src/hooks/eventKeyHandlers/focusNextElementHandler.d.ts.map +1 -0
  26. package/dist/src/hooks/eventKeyHandlers/focusNextElementHandler.js +5 -0
  27. package/dist/src/hooks/eventKeyHandlers/getNextIndexElement.d.ts +9 -0
  28. package/dist/src/hooks/eventKeyHandlers/getNextIndexElement.d.ts.map +1 -0
  29. package/dist/src/hooks/eventKeyHandlers/getNextIndexElement.js +25 -0
  30. package/dist/src/hooks/eventKeyHandlers/test-utils/dispatchKeyboardEvents.d.ts +4 -0
  31. package/dist/src/hooks/eventKeyHandlers/test-utils/dispatchKeyboardEvents.d.ts.map +1 -0
  32. package/dist/src/hooks/eventKeyHandlers/test-utils/dispatchKeyboardEvents.js +4 -0
  33. package/dist/src/hooks/eventKeyHandlers/useArrowKeyListIndex.d.ts +18 -0
  34. package/dist/src/hooks/eventKeyHandlers/useArrowKeyListIndex.d.ts.map +1 -0
  35. package/dist/src/hooks/eventKeyHandlers/useArrowKeyListIndex.js +42 -0
  36. package/dist/src/hooks/eventKeyHandlers/useGlobalActionKeyHandler.d.ts +16 -0
  37. package/dist/src/hooks/eventKeyHandlers/useGlobalActionKeyHandler.d.ts.map +1 -0
  38. package/dist/src/hooks/eventKeyHandlers/useGlobalActionKeyHandler.js +24 -0
  39. package/dist/src/hooks/useAriaLive.d.ts +47 -0
  40. package/dist/src/hooks/useAriaLive.d.ts.map +1 -0
  41. package/dist/src/hooks/useAriaLive.js +113 -0
  42. package/dist/src/hooks/useClickOutside.d.ts +4 -0
  43. package/dist/src/hooks/useClickOutside.d.ts.map +1 -0
  44. package/dist/src/hooks/useClickOutside.js +17 -0
  45. package/dist/src/hooks/useFontSize.d.ts +3 -0
  46. package/dist/src/hooks/useFontSize.d.ts.map +1 -0
  47. package/dist/src/hooks/useFontSize.js +4 -0
  48. package/dist/src/hooks/useHasOverflow.d.ts +4 -0
  49. package/dist/src/hooks/useHasOverflow.d.ts.map +1 -0
  50. package/dist/src/hooks/useHasOverflow.js +27 -0
  51. package/dist/src/hooks/useId.d.ts +3 -0
  52. package/dist/src/hooks/useId.d.ts.map +1 -0
  53. package/dist/src/hooks/useId.js +14 -0
  54. package/dist/src/index.d.ts +18 -0
  55. package/dist/src/index.d.ts.map +1 -0
  56. package/dist/src/index.js +17 -0
  57. package/dist/src/styles/ellipsis.d.ts +14 -0
  58. package/dist/src/styles/ellipsis.d.ts.map +1 -0
  59. package/dist/src/styles/ellipsis.js +13 -0
  60. package/dist/src/styles/withAlpha.d.ts +8 -0
  61. package/dist/src/styles/withAlpha.d.ts.map +1 -0
  62. package/dist/src/styles/withAlpha.js +18 -0
  63. package/dist/tsconfig.tsbuildinfo +1 -0
  64. package/package.json +24 -4
package/LICENSE.md ADDED
@@ -0,0 +1,2 @@
1
+ 8x8 Oxygen UI Component Library License Agreement
2
+ See https://cdn.8x8.com/files/mfagl40e/production/12432a68bd5f8c2bd0e233afad08de05acb8a5d1.pdf
package/README.md CHANGED
@@ -1,3 +1,142 @@
1
- # Temporary Holding Version
1
+ # 8x8 Oxygen - Utilities
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ ## Map
4
+
5
+ - Components
6
+ - [OutsideEventBehavior](#outsideEventBehavior)
7
+ - Functions
8
+ - [Media](#media)
9
+
10
+ ## Components
11
+
12
+ ### OutsideEventBehavior
13
+
14
+ Component wich will attach an `onClick` event listener to the `window` object. The function will be triggered everytime a click event target doesn't contain the children of `OutsideEventBehavior`.
15
+
16
+ ```javascript
17
+ import { OutsideEventBehavior } from '@8x8/oxygen-utils';
18
+
19
+ <OutsideEventBehavior onClick={this.handleClickOutside}>
20
+ <div>Some random children</div>
21
+ </OutsideEventBehavior>;
22
+ ```
23
+
24
+ In the example above, the function `this.handleClickOutside` will be triggered every time one executes a click outside `<div>Some random children</div>`.
25
+
26
+ ## Functions
27
+
28
+ ### Media
29
+
30
+ An object with media breakpoints helpers for `styled-components`. You can use `media` for `max-width` breakpoints or `mediaMin` for `min-width` rules.
31
+
32
+ ```javascript
33
+ // max-width breakpoint rule
34
+
35
+ import { media } from '@8x8/oxygen-utils';
36
+
37
+ const StyledDiv = styled.div`
38
+ color: red;
39
+
40
+ ${media.desktop`color: yellow;`}
41
+ ${media.tablet`color: green;`}
42
+ ${media.phone`color: blue;`}
43
+ `;
44
+
45
+ export default StyledDiv;
46
+ ```
47
+
48
+ ```javascript
49
+ // min-width breakpoint rule
50
+
51
+ import { mediaMin } from '@8x8/oxygen-utils';
52
+
53
+ const StyledDiv = styled.div`
54
+ color: red;
55
+
56
+ ${mediaMin.desktop`color: yellow;`}
57
+ ${mediaMin.tablet`color: green;`}
58
+ ${mediaMin.phone`color: blue;`}
59
+ `;
60
+
61
+ export default StyledDiv;
62
+ ```
63
+
64
+ ## Hooks
65
+
66
+ ### `useFontSize`
67
+
68
+ Transforms a `rem` into a `px` value based on the root html font-size property. This allows access to the _actual_ value in JS.
69
+
70
+ If you need a dimension in `px` that relates to font-size values, use this hook which takes the user's font-size preferences into account.
71
+
72
+ ```javascript
73
+ import { useFontSize } from '@8x8/oxygen-utils';
74
+
75
+ const Component = () => {
76
+ const height = useFontSize(1.5); // 1.5rem => 24px with default font-size
77
+ return (
78
+ <div style={{ ${height}px }}>I have 1.5rem as height set from JS</div>
79
+ );
80
+ }
81
+ ```
82
+
83
+ ### `useHasOverflow`
84
+
85
+ Detects whether the given element has overflowed its content. Useful for detentcting whether a container has truncated its text with an ellipsis.
86
+
87
+ ### `useId`
88
+
89
+ Generates a stable `id` via `uuid`. Once React 18 is used, this can be replaced with the official react `useId` hook https://react.dev/reference/react/useId
90
+
91
+ Useful to generate unique id's for form & accesibility purposes (to link elements together).
92
+
93
+ ```javascript
94
+ import { useId } from '@8x8/oxygen-utils';
95
+
96
+ const Component = () => {
97
+ const id = useId();
98
+ return (
99
+ <label htmlFor={id}>Label</label>
100
+ <input id={id} />
101
+ );
102
+ }
103
+ ```
104
+
105
+ ### `useAriaLive`
106
+
107
+ Manages screen reader announcements with automatic DOM injection. Messages are announced to screen readers without requiring any JSX components to be rendered.
108
+
109
+ Creates aria-live containers on-demand when messages are announced, ensuring screen readers can properly register them. Messages are announced via direct DOM manipulation for reliable screen reader detection.
110
+
111
+ ```javascript
112
+ import { useAriaLive } from '@8x8/oxygen-utils';
113
+
114
+ const Component = () => {
115
+ const { announce } = useAriaLive();
116
+
117
+ const handleSave = () => {
118
+ // ... save logic
119
+ announce('Item saved successfully');
120
+ };
121
+
122
+ const handleError = () => {
123
+ // ... error handling
124
+ announce('Connection failed!', { assertive: true });
125
+ };
126
+
127
+ return (
128
+ <div>
129
+ <button onClick={handleSave}>Save</button>
130
+ <button onClick={handleError}>Trigger Error</button>
131
+ </div>
132
+ );
133
+ };
134
+ ```
135
+
136
+ #### API
137
+
138
+ `useAriaLive(): { announce: (message: string, options?: { assertive?: boolean }) => void }`
139
+
140
+ - **`announce(message, options?)`**: Announces a message to screen readers
141
+ - `message` (string): The message to announce
142
+ - `options.assertive` (boolean, optional): Use assertive priority for urgent announcements that interrupt current speech. Defaults to `false` (polite)
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ type Props = {
3
+ children?: React.ReactNode;
4
+ onClick?: (event: MouseEvent) => void;
5
+ };
6
+ declare class OutsideEventBehavior extends React.Component<Props> {
7
+ static defaultProps: Props;
8
+ private wrapperRef;
9
+ componentDidMount(): void;
10
+ componentWillUnmount(): void;
11
+ handleClickEvent: (event: MouseEvent) => void;
12
+ render(): React.DetailedReactHTMLElement<{
13
+ ref: React.RefObject<HTMLSpanElement>;
14
+ style: {
15
+ display: "contents";
16
+ };
17
+ }, HTMLSpanElement>;
18
+ }
19
+ export default OutsideEventBehavior;
20
+ //# sourceMappingURL=OutsideEventBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutsideEventBehavior.d.ts","sourceRoot":"","sources":["../../../../src/components/OutsideEventBehavior/OutsideEventBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,cAAM,oBAAqB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,KAAK,CAGxB;IAEF,OAAO,CAAC,UAAU,CAAsC;IAExD,iBAAiB;IAMjB,oBAAoB;IAMpB,gBAAgB,GAAI,OAAO,UAAU,UAYnC;IAEF,MAAM;;;;;;CAOP;AAED,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ class OutsideEventBehavior extends React.Component {
3
+ constructor() {
4
+ super(...arguments);
5
+ this.wrapperRef = React.createRef();
6
+ this.handleClickEvent = (event) => {
7
+ const el = this.wrapperRef.current;
8
+ if (!this.props.onClick ||
9
+ !el ||
10
+ (event.target instanceof Node && el.contains(event.target))) {
11
+ return;
12
+ }
13
+ this.props.onClick(event);
14
+ };
15
+ }
16
+ componentDidMount() {
17
+ document.addEventListener('click', this.handleClickEvent, {
18
+ capture: true,
19
+ });
20
+ }
21
+ componentWillUnmount() {
22
+ document.removeEventListener('click', this.handleClickEvent, {
23
+ capture: true,
24
+ });
25
+ }
26
+ render() {
27
+ return React.createElement('span', { ref: this.wrapperRef, style: { display: 'contents' } }, this.props.children);
28
+ }
29
+ }
30
+ OutsideEventBehavior.defaultProps = {
31
+ children: undefined,
32
+ onClick: undefined,
33
+ };
34
+ export default OutsideEventBehavior;
@@ -0,0 +1,3 @@
1
+ import OutsideEventBehavior from './OutsideEventBehavior';
2
+ export default OutsideEventBehavior;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/OutsideEventBehavior/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import OutsideEventBehavior from './OutsideEventBehavior';
2
+ export default OutsideEventBehavior;
@@ -0,0 +1,2 @@
1
+ export default function isReactDevMode(): boolean;
2
+ //# sourceMappingURL=isReactDevMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isReactDevMode.d.ts","sourceRoot":"","sources":["../../../src/functions/isReactDevMode.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,cAAc,YAErC"}
@@ -0,0 +1,3 @@
1
+ export default function isReactDevMode() {
2
+ return process.env.NODE_ENV !== 'production';
3
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ type KeyboardEventType = KeyboardEvent | React.KeyboardEvent;
3
+ declare const isArrowUpEvent: (ev: KeyboardEventType) => boolean;
4
+ declare const isArrowDownEvent: (ev: KeyboardEventType) => boolean;
5
+ declare const isEnterEvent: (ev: KeyboardEventType) => boolean;
6
+ declare const isSpaceEvent: (ev: KeyboardEventType) => boolean;
7
+ declare const isEscapeEvent: (ev: KeyboardEventType) => boolean;
8
+ export { isEnterEvent, isSpaceEvent, isEscapeEvent, isArrowDownEvent, isArrowUpEvent, KeyboardEventType, };
9
+ //# sourceMappingURL=keyboardEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboardEvents.d.ts","sourceRoot":"","sources":["../../../src/functions/keyboardEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,iBAAiB,GAAG,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAE7D,QAAA,MAAM,cAAc,GAAI,IAAI,iBAAiB,KAAG,OACnB,CAAC;AAE9B,QAAA,MAAM,gBAAgB,GAAI,IAAI,iBAAiB,KAAG,OACnB,CAAC;AAEhC,QAAA,MAAM,YAAY,GAAI,IAAI,iBAAiB,YAA8B,CAAC;AAE1E,QAAA,MAAM,YAAY,GAAI,IAAI,iBAAiB,YACc,CAAC;AAE1D,QAAA,MAAM,aAAa,GAAI,IAAI,iBAAiB,YAA+B,CAAC;AAE5E,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import EventKey from '../hooks/eventKeyHandlers/EventKey';
2
+ const isArrowUpEvent = (ev) => ev.key === EventKey.ArrowUp;
3
+ const isArrowDownEvent = (ev) => ev.key === EventKey.ArrowDown;
4
+ const isEnterEvent = (ev) => ev.key === EventKey.Enter;
5
+ const isSpaceEvent = (ev) => ev.code === EventKey.Space || ev.key === EventKey.Space;
6
+ const isEscapeEvent = (ev) => ev.key === EventKey.Escape;
7
+ export { isEnterEvent, isSpaceEvent, isEscapeEvent, isArrowDownEvent, isArrowUpEvent, };
@@ -0,0 +1,52 @@
1
+ import { FlattenSimpleInterpolation } from 'styled-components';
2
+ export type MediaSizesKeys = 'desktop' | 'tablet' | 'phone';
3
+ type MediaSizesType = Record<MediaSizesKeys, number>;
4
+ type MediaSizesFnType = Record<MediaSizesKeys, (...args: string[]) => string | FlattenSimpleInterpolation>;
5
+ declare const mediaSizes: MediaSizesType;
6
+ /**
7
+ * @description Convert pixels to em units
8
+ * @param {(number|string)} value Breakpoint value
9
+ * @returns {number} A number which was converted to em units
10
+ */
11
+ declare const calcMediaVal: (value: number | string) => number;
12
+ /**
13
+ * @description Append `em` to a number
14
+ * @param {number} value Breakpoint value
15
+ * @returns {string} A number which was converted to em units with `em` appended
16
+ */
17
+ declare const getMediaVal: (value: number) => string;
18
+ /**
19
+ * @param {string} [mediaRule=max] Prefix for the media rule: [min|max]
20
+ * @returns {(value: (number|string)) => (...args: string) => string}
21
+ */
22
+ declare const getCssMedia: (mediaRule?: "min" | "max") => (value: number) => (...args: any) => FlattenSimpleInterpolation;
23
+ /**
24
+ * description Function to create an object containing media query functions for `styled-components`
25
+ * param {{ desktop: number, tablet: number, phone: number }} [sizeEntries]
26
+ * returns { (string) => { desktop: Function, tablet: Function, phone: Function }} - Utility media-query functions
27
+ * for `styled-components`
28
+ */
29
+ declare const mediaFn: (sizeEntries?: MediaSizesType) => (mediaRule?: "min" | "max") => MediaSizesFnType;
30
+ /**
31
+ * @description Creates a min-width rule with custom value
32
+ * @param {(number|string)} value Breakpoint value
33
+ * @returns {(css: string) => string}
34
+ */
35
+ declare const mediaMinC: (value: number) => (...args: any) => FlattenSimpleInterpolation;
36
+ /**
37
+ * @description Creates a max-width rule with custom value
38
+ * @param {(number|string)} value Breakpoint value
39
+ * @returns {(css: string) => string}
40
+ */
41
+ declare const mediaMaxC: (value: number) => (...args: any) => FlattenSimpleInterpolation;
42
+ /**
43
+ * @description Object containing `min-width` breakpoint functions for `styled-components`
44
+ */
45
+ declare const mediaMin: MediaSizesFnType;
46
+ /**
47
+ * @description Object containing `max-width` breakpoint functions for `styled-components`
48
+ */
49
+ declare const mediaMax: MediaSizesFnType;
50
+ export { getCssMedia, mediaMinC, mediaMaxC, calcMediaVal, getMediaVal, mediaMin, mediaFn, mediaSizes, };
51
+ export default mediaMax;
52
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/functions/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC5D,KAAK,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACrD,KAAK,gBAAgB,GAAG,MAAM,CAC5B,cAAc,EACd,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,0BAA0B,CAC3D,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,cAIjB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,MAAM,GAAG,MAAM,WAAmC,CAAC;AAEhF;;;;GAIG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,WAA+B,CAAC;AAElE;;;GAGG;AACH,QAAA,MAAM,WAAW,GACd,YAAW,KAAK,GAAG,KAAa,MAChC,OAAO,MAAM,MAEb,GAAG,MAAM,GAAG,+BAKV,CAAC;AAEN;;;;;GAKG;AACH,QAAA,MAAM,OAAO,GACV,cAAa,cAA2B,MAIxC,YAAW,KAAK,GAAG,KAAa,KAAG,gBAIlC,CAAC;AAEL;;;;GAIG;AACH,QAAA,MAAM,SAAS,UA/BL,MAAM,MAEb,GAAG,MAAM,GAAG,+BA6BqB,CAAC;AAErC;;;;GAIG;AACH,QAAA,MAAM,SAAS,UAtCL,MAAM,MAEb,GAAG,MAAM,GAAG,+BAoCgB,CAAC;AAEhC;;GAEG;AACH,QAAA,MAAM,QAAQ,kBAAmB,CAAC;AAElC;;GAEG;AACH,QAAA,MAAM,QAAQ,kBAAc,CAAC;AAE7B,OAAO,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,OAAO,EACP,UAAU,GACX,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { css } from 'styled-components';
2
+ // Breakpoints in px (these predate the grid's own set, which is tracked separately)
3
+ const mediaSizes = {
4
+ desktop: 992,
5
+ tablet: 768,
6
+ phone: 576,
7
+ };
8
+ /**
9
+ * @description Convert pixels to em units
10
+ * @param {(number|string)} value Breakpoint value
11
+ * @returns {number} A number which was converted to em units
12
+ */
13
+ const calcMediaVal = (value) => parseFloat(value) / 16;
14
+ /**
15
+ * @description Append `em` to a number
16
+ * @param {number} value Breakpoint value
17
+ * @returns {string} A number which was converted to em units with `em` appended
18
+ */
19
+ const getMediaVal = (value) => `${calcMediaVal(value)}em`;
20
+ /**
21
+ * @param {string} [mediaRule=max] Prefix for the media rule: [min|max]
22
+ * @returns {(value: (number|string)) => (...args: string) => string}
23
+ */
24
+ const getCssMedia = (mediaRule = 'max') => (value) =>
25
+ // disable-next-line @typescript-eslint/no-explicit-any
26
+ (...args) => css `
27
+ @media (${mediaRule}-width: ${getMediaVal(value)}) {
28
+ ${css(args)}
29
+ }
30
+ `;
31
+ /**
32
+ * description Function to create an object containing media query functions for `styled-components`
33
+ * param {{ desktop: number, tablet: number, phone: number }} [sizeEntries]
34
+ * returns { (string) => { desktop: Function, tablet: Function, phone: Function }} - Utility media-query functions
35
+ * for `styled-components`
36
+ */
37
+ const mediaFn = (sizeEntries = mediaSizes) =>
38
+ /**
39
+ * @param {'min' | 'max'} [mediaRule='max'] Media query [max|min] width rule
40
+ */
41
+ (mediaRule = 'max') => ({
42
+ desktop: getCssMedia(mediaRule)(sizeEntries.desktop),
43
+ tablet: getCssMedia(mediaRule)(sizeEntries.tablet),
44
+ phone: getCssMedia(mediaRule)(sizeEntries.phone),
45
+ });
46
+ /**
47
+ * @description Creates a min-width rule with custom value
48
+ * @param {(number|string)} value Breakpoint value
49
+ * @returns {(css: string) => string}
50
+ */
51
+ const mediaMinC = getCssMedia('min');
52
+ /**
53
+ * @description Creates a max-width rule with custom value
54
+ * @param {(number|string)} value Breakpoint value
55
+ * @returns {(css: string) => string}
56
+ */
57
+ const mediaMaxC = getCssMedia();
58
+ /**
59
+ * @description Object containing `min-width` breakpoint functions for `styled-components`
60
+ */
61
+ const mediaMin = mediaFn()('min');
62
+ /**
63
+ * @description Object containing `max-width` breakpoint functions for `styled-components`
64
+ */
65
+ const mediaMax = mediaFn()();
66
+ export { getCssMedia, mediaMinC, mediaMaxC, calcMediaVal, getMediaVal, mediaMin, mediaFn, mediaSizes, };
67
+ export default mediaMax;
@@ -0,0 +1,13 @@
1
+ type CB = () => void;
2
+ export default class PausableTimeout {
3
+ timeoutId: ReturnType<typeof setTimeout>;
4
+ start: number;
5
+ remaining: number;
6
+ callback: CB;
7
+ constructor(callback: CB, delay: number);
8
+ resume(): void;
9
+ pause(): void;
10
+ clear(): void;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=pausableTimeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pausableTimeout.d.ts","sourceRoot":"","sources":["../../../src/functions/pausableTimeout.ts"],"names":[],"mappings":"AAAA,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC;AAErB,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAa;IACrD,KAAK,EAAE,MAAM,CAAa;IAC1B,SAAS,EAAE,MAAM,CAAa;IAC9B,QAAQ,EAAE,EAAE,CAAa;gBAEb,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM;IAOvC,MAAM;IAQN,KAAK;IAML,KAAK;CAGN"}
@@ -0,0 +1,23 @@
1
+ export default class PausableTimeout {
2
+ constructor(callback, delay) {
3
+ this.timeoutId = undefined;
4
+ this.start = undefined;
5
+ this.remaining = undefined;
6
+ this.callback = undefined;
7
+ this.remaining = delay;
8
+ this.callback = callback;
9
+ this.resume();
10
+ }
11
+ resume() {
12
+ this.start = new Date().getTime();
13
+ clearTimeout(this.timeoutId);
14
+ this.timeoutId = setTimeout(this.callback, this.remaining);
15
+ }
16
+ pause() {
17
+ clearTimeout(this.timeoutId);
18
+ this.remaining -= new Date().getTime() - this.start;
19
+ }
20
+ clear() {
21
+ clearTimeout(this.timeoutId);
22
+ }
23
+ }
@@ -0,0 +1,16 @@
1
+ declare enum EventKey {
2
+ /** The Enter or ↵ key (sometimes labeled Return). */
3
+ Enter = "Enter",
4
+ Escape = "Escape",
5
+ Shift = "shiftKey",
6
+ Space = "Space",
7
+ Tab = "Tab",
8
+ X = "x",
9
+ Backspace = "Backspace",
10
+ ArrowUp = "ArrowUp",
11
+ ArrowDown = "ArrowDown",
12
+ ArrowLeft = "ArrowLeft",
13
+ ArrowRight = "ArrowRight"
14
+ }
15
+ export default EventKey;
16
+ //# sourceMappingURL=EventKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventKey.d.ts","sourceRoot":"","sources":["../../../../src/hooks/eventKeyHandlers/EventKey.ts"],"names":[],"mappings":"AACA,aAAK,QAAQ;IACX,qDAAqD;IACrD,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,aAAa;IAClB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,CAAC,MAAM;IACP,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,17 @@
1
+ // https://github.com/nfriend/ts-key-enum
2
+ var EventKey;
3
+ (function (EventKey) {
4
+ /** The Enter or ↵ key (sometimes labeled Return). */
5
+ EventKey["Enter"] = "Enter";
6
+ EventKey["Escape"] = "Escape";
7
+ EventKey["Shift"] = "shiftKey";
8
+ EventKey["Space"] = "Space";
9
+ EventKey["Tab"] = "Tab";
10
+ EventKey["X"] = "x";
11
+ EventKey["Backspace"] = "Backspace";
12
+ EventKey["ArrowUp"] = "ArrowUp";
13
+ EventKey["ArrowDown"] = "ArrowDown";
14
+ EventKey["ArrowLeft"] = "ArrowLeft";
15
+ EventKey["ArrowRight"] = "ArrowRight";
16
+ })(EventKey || (EventKey = {}));
17
+ export default EventKey;
@@ -0,0 +1,4 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ declare const focusNextElementHandler: (direction: boolean, elementCount: number, setFocusIdHandler: Dispatch<SetStateAction<number>>) => void;
3
+ export default focusNextElementHandler;
4
+ //# sourceMappingURL=focusNextElementHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusNextElementHandler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/eventKeyHandlers/focusNextElementHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGjD,QAAA,MAAM,uBAAuB,GAC3B,WAAW,OAAO,EAClB,cAAc,MAAM,EACpB,mBAAmB,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAClD,IAIF,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import getNextIndexElement from './getNextIndexElement';
2
+ const focusNextElementHandler = (direction, elementCount, setFocusIdHandler) => {
3
+ setFocusIdHandler((prevState) => getNextIndexElement(direction, elementCount, prevState));
4
+ };
5
+ export default focusNextElementHandler;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param {boolean} direction - true for down arrow, false for up arrow
3
+ * @param {number} elementCount - list size
4
+ * @param {number} currentIndex - current element index
5
+ * @returns {number} represents the index of the next focusable element
6
+ */
7
+ declare const getNextIndexElement: (direction: boolean, elementCount: number, currentIndex: number) => number;
8
+ export default getNextIndexElement;
9
+ //# sourceMappingURL=getNextIndexElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNextIndexElement.d.ts","sourceRoot":"","sources":["../../../../src/hooks/eventKeyHandlers/getNextIndexElement.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,GACvB,WAAW,OAAO,EAClB,cAAc,MAAM,EACpB,cAAc,MAAM,KACnB,MAsBF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @param {boolean} direction - true for down arrow, false for up arrow
3
+ * @param {number} elementCount - list size
4
+ * @param {number} currentIndex - current element index
5
+ * @returns {number} represents the index of the next focusable element
6
+ */
7
+ const getNextIndexElement = (direction, elementCount, currentIndex) => {
8
+ let prevIndex = currentIndex;
9
+ if (prevIndex >= elementCount) {
10
+ prevIndex = elementCount - 1;
11
+ }
12
+ if (prevIndex <= 0 && !direction) {
13
+ // Focus last element of the list if we reached the first element and direction is upwards
14
+ return elementCount - 1;
15
+ }
16
+ if (prevIndex === elementCount - 1 && direction) {
17
+ // Focus first element if we reached the end of the list and direction is downwards
18
+ return 0;
19
+ }
20
+ if (direction) {
21
+ return prevIndex + 1;
22
+ }
23
+ return prevIndex - 1;
24
+ };
25
+ export default getNextIndexElement;
@@ -0,0 +1,4 @@
1
+ import EventKey from '../EventKey';
2
+ declare const dispatchKeyDownEvent: (key: EventKey) => void;
3
+ export default dispatchKeyDownEvent;
4
+ //# sourceMappingURL=dispatchKeyboardEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatchKeyboardEvents.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/eventKeyHandlers/test-utils/dispatchKeyboardEvents.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AAEnC,QAAA,MAAM,oBAAoB,GAAI,KAAK,QAAQ,KAAG,IAE7C,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ const dispatchKeyDownEvent = (key) => {
2
+ document.dispatchEvent(new KeyboardEvent('keydown', { key }));
3
+ };
4
+ export default dispatchKeyDownEvent;
@@ -0,0 +1,18 @@
1
+ export interface HookProps {
2
+ elementCount: number;
3
+ initialHighlightedElementIndex?: number;
4
+ windowContext?: Window;
5
+ }
6
+ export interface HookReturnType {
7
+ focusedElementIndex: number;
8
+ }
9
+ /**
10
+ * A hook that uses arrow key logic to compute the index of a highlighted element within a list
11
+ * @param { number } elementCount The total number of elements from the list
12
+ * @param { number } initialHighlightedElementIndex index of the initial highlighted element.
13
+ * initialHighlightedElementIndex = -1 means there is no initial highlighted element.
14
+ * @returns { number } The index of the element that should be highlighted
15
+ */
16
+ declare const useArrowKeyListIndex: ({ elementCount, windowContext, initialHighlightedElementIndex, }: HookProps) => HookReturnType;
17
+ export default useArrowKeyListIndex;
18
+ //# sourceMappingURL=useArrowKeyListIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useArrowKeyListIndex.d.ts","sourceRoot":"","sources":["../../../../src/hooks/eventKeyHandlers/useArrowKeyListIndex.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,GAAI,kEAI3B,SAAS,KAAG,cA4Cd,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import focusNextElementHandler from './focusNextElementHandler';
3
+ import { isArrowDownEvent, isArrowUpEvent, } from '../../functions/keyboardEvents';
4
+ /**
5
+ * A hook that uses arrow key logic to compute the index of a highlighted element within a list
6
+ * @param { number } elementCount The total number of elements from the list
7
+ * @param { number } initialHighlightedElementIndex index of the initial highlighted element.
8
+ * initialHighlightedElementIndex = -1 means there is no initial highlighted element.
9
+ * @returns { number } The index of the element that should be highlighted
10
+ */
11
+ const useArrowKeyListIndex = ({ elementCount, windowContext, initialHighlightedElementIndex = 0, }) => {
12
+ const [focusedId, setFocusedId] = useState(initialHighlightedElementIndex);
13
+ const handleElementCountChanged = () => {
14
+ // Case when elemnet count is smaller than the current focused index -> update focus index to the last element
15
+ if (focusedId >= elementCount) {
16
+ setFocusedId(elementCount - 1);
17
+ }
18
+ };
19
+ const handleArrow = useCallback((event) => {
20
+ if (isArrowDownEvent(event)) {
21
+ focusNextElementHandler(true, elementCount, setFocusedId);
22
+ return;
23
+ }
24
+ if (isArrowUpEvent(event)) {
25
+ focusNextElementHandler(false, elementCount, setFocusedId);
26
+ }
27
+ }, [elementCount]);
28
+ useEffect(() => {
29
+ (windowContext || window).document.addEventListener('keydown', handleArrow);
30
+ return () => {
31
+ (windowContext || window).document.removeEventListener('keydown', handleArrow);
32
+ };
33
+ }, [elementCount]);
34
+ useEffect(() => {
35
+ // Update focused index when element count is changed
36
+ handleElementCountChanged();
37
+ }, [elementCount]);
38
+ return {
39
+ focusedElementIndex: focusedId,
40
+ };
41
+ };
42
+ export default useArrowKeyListIndex;
@@ -0,0 +1,16 @@
1
+ import EventKey from './EventKey';
2
+ export interface HookProps {
3
+ actionKeyHandler: () => void;
4
+ windowContext?: Window;
5
+ fireEvents?: EventKey[];
6
+ }
7
+ /**
8
+ * A hook that binds to global action key events (example: Enter or Space) and calls the provided handler once any of the specified keys have been pressed
9
+ * @param { Function } actionKeyHandler The handler to be called when Enter or Space has been pressed
10
+ * @param fireEvents specify the events
11
+ * @param windowContext
12
+ * @returns { void }
13
+ */
14
+ declare const useGlobalActionKeyHandler: ({ actionKeyHandler, windowContext, fireEvents, }: HookProps) => void;
15
+ export default useGlobalActionKeyHandler;
16
+ //# sourceMappingURL=useGlobalActionKeyHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGlobalActionKeyHandler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/eventKeyHandlers/useGlobalActionKeyHandler.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,MAAM,WAAW,SAAS;IACxB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB,GAAI,kDAIhC,SAAS,KAAG,IAqBd,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { useEffect } from 'react';
2
+ import EventKey from './EventKey';
3
+ /**
4
+ * A hook that binds to global action key events (example: Enter or Space) and calls the provided handler once any of the specified keys have been pressed
5
+ * @param { Function } actionKeyHandler The handler to be called when Enter or Space has been pressed
6
+ * @param fireEvents specify the events
7
+ * @param windowContext
8
+ * @returns { void }
9
+ */
10
+ const useGlobalActionKeyHandler = ({ actionKeyHandler, windowContext, fireEvents = [EventKey.Enter, EventKey.Space], }) => {
11
+ const handleKeyPress = (event) => {
12
+ if (fireEvents.includes(event.key)) {
13
+ // eslint-disable-next-line no-unused-expressions
14
+ actionKeyHandler && actionKeyHandler();
15
+ }
16
+ };
17
+ useEffect(() => {
18
+ (windowContext || window).document.addEventListener('keydown', handleKeyPress);
19
+ return () => {
20
+ (windowContext || window).document.removeEventListener('keydown', handleKeyPress);
21
+ };
22
+ }, [handleKeyPress]);
23
+ };
24
+ export default useGlobalActionKeyHandler;
@@ -0,0 +1,47 @@
1
+ export interface UseAriaLiveReturn {
2
+ /**
3
+ * Announce a message to screen readers
4
+ */
5
+ announce: (message: string, options?: {
6
+ assertive?: boolean;
7
+ }) => void;
8
+ }
9
+ export declare const CONTAINER_IDS: {
10
+ readonly polite: "__oxygen-aria-live-polite__";
11
+ readonly assertive: "__oxygen-aria-live-assertive__";
12
+ };
13
+ /**
14
+ * Clean up containers and timeouts (for testing)
15
+ * @internal
16
+ */
17
+ export declare function cleanup(): void;
18
+ /**
19
+ * Hook for managing aria-live status messages with automatic DOM injection.
20
+ * Messages are announced to screen readers via direct DOM manipulation.
21
+ * Containers are created on-demand when messages are announced.
22
+ *
23
+ * @returns Object with message control functions
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * const { announce } = useAriaLive();
28
+ *
29
+ * const handleSave = () => {
30
+ * // ... save logic
31
+ * announce('Item saved successfully');
32
+ * };
33
+ *
34
+ * const handleError = () => {
35
+ * // ... error handling
36
+ * announce('Connection failed!', { assertive: true });
37
+ * };
38
+ *
39
+ * return (
40
+ * <div>
41
+ * <button onClick={handleSave}>Save</button>
42
+ * </div>
43
+ * );
44
+ * ```
45
+ */
46
+ export default function useAriaLive(): UseAriaLiveReturn;
47
+ //# sourceMappingURL=useAriaLive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAriaLive.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAriaLive.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACxE;AAKD,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AA2DX;;;GAGG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAsB9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,IAAI,iBAAiB,CAavD"}
@@ -0,0 +1,113 @@
1
+ import { useCallback } from 'react';
2
+ const MESSAGE_CLEAR_DELAY = 1000; // ms to clear message
3
+ // Container IDs for aria-live regions
4
+ export const CONTAINER_IDS = {
5
+ polite: '__oxygen-aria-live-polite__',
6
+ assertive: '__oxygen-aria-live-assertive__',
7
+ };
8
+ // Timeout references for automatic message clearing
9
+ const messageTimeouts = {
10
+ polite: null,
11
+ assertive: null,
12
+ };
13
+ /**
14
+ * Get or create the DOM container for the specified type
15
+ */
16
+ function getOrCreateContainer(type) {
17
+ const containerId = CONTAINER_IDS[type];
18
+ // Check if container already exists
19
+ const existing = document.getElementById(containerId);
20
+ if (existing) {
21
+ return existing;
22
+ }
23
+ // Create new container
24
+ const container = document.createElement('div');
25
+ container.id = containerId;
26
+ container.setAttribute('aria-live', type);
27
+ container.setAttribute('aria-atomic', 'true');
28
+ // Apply offscreen styling
29
+ container.style.position = 'absolute';
30
+ container.style.width = '1px';
31
+ container.style.height = '1px';
32
+ container.style.overflow = 'hidden';
33
+ document.body.appendChild(container);
34
+ return container;
35
+ }
36
+ /**
37
+ * Announce a message using direct DOM manipulation
38
+ */
39
+ function announceMessage(message, type) {
40
+ // Clear any existing timeout for this type
41
+ if (messageTimeouts[type]) {
42
+ clearTimeout(messageTimeouts[type]);
43
+ messageTimeouts[type] = null;
44
+ }
45
+ // Get or create the container on-demand
46
+ const container = getOrCreateContainer(type);
47
+ container.textContent = message;
48
+ // Set timeout to clear the message
49
+ messageTimeouts[type] = setTimeout(() => {
50
+ container.textContent = '';
51
+ messageTimeouts[type] = null;
52
+ }, MESSAGE_CLEAR_DELAY);
53
+ }
54
+ /**
55
+ * Clean up containers and timeouts (for testing)
56
+ * @internal
57
+ */
58
+ export function cleanup() {
59
+ // Clear timeouts
60
+ Object.keys(messageTimeouts).forEach(type => {
61
+ const key = type;
62
+ if (messageTimeouts[key]) {
63
+ clearTimeout(messageTimeouts[key]);
64
+ messageTimeouts[key] = null;
65
+ }
66
+ });
67
+ // Remove DOM containers
68
+ const politeContainer = document.getElementById(CONTAINER_IDS.polite);
69
+ const assertiveContainer = document.getElementById(CONTAINER_IDS.assertive);
70
+ if (politeContainer) {
71
+ politeContainer.remove();
72
+ }
73
+ if (assertiveContainer) {
74
+ assertiveContainer.remove();
75
+ }
76
+ }
77
+ /**
78
+ * Hook for managing aria-live status messages with automatic DOM injection.
79
+ * Messages are announced to screen readers via direct DOM manipulation.
80
+ * Containers are created on-demand when messages are announced.
81
+ *
82
+ * @returns Object with message control functions
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * const { announce } = useAriaLive();
87
+ *
88
+ * const handleSave = () => {
89
+ * // ... save logic
90
+ * announce('Item saved successfully');
91
+ * };
92
+ *
93
+ * const handleError = () => {
94
+ * // ... error handling
95
+ * announce('Connection failed!', { assertive: true });
96
+ * };
97
+ *
98
+ * return (
99
+ * <div>
100
+ * <button onClick={handleSave}>Save</button>
101
+ * </div>
102
+ * );
103
+ * ```
104
+ */
105
+ export default function useAriaLive() {
106
+ const announce = useCallback((message, messageOptions = {}) => {
107
+ const type = messageOptions.assertive ? 'assertive' : 'polite';
108
+ announceMessage(message, type);
109
+ }, []);
110
+ return {
111
+ announce,
112
+ };
113
+ }
@@ -0,0 +1,4 @@
1
+ import { RefObject } from 'react';
2
+ declare const useClickOutside: <RefType>(onClickOutside: (event: MouseEvent) => void) => RefObject<RefType>;
3
+ export default useClickOutside;
4
+ //# sourceMappingURL=useClickOutside.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutside.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClickOutside.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAU,MAAM,OAAO,CAAC;AAErD,QAAA,MAAM,eAAe,GAAI,OAAO,EAC9B,gBAAgB,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,KAC1C,SAAS,CAAC,OAAO,CAsBnB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { useEffect, useRef } from 'react';
2
+ const useClickOutside = (onClickOutside) => {
3
+ const containerRef = useRef(null);
4
+ useEffect(() => {
5
+ const handleMouseUp = (event) => {
6
+ if (containerRef &&
7
+ !(containerRef.current instanceof Element &&
8
+ containerRef.current.contains(event?.target))) {
9
+ onClickOutside(event);
10
+ }
11
+ };
12
+ window.document.addEventListener('mouseup', handleMouseUp);
13
+ return () => window.document.removeEventListener('mouseup', handleMouseUp);
14
+ }, [containerRef, onClickOutside]);
15
+ return containerRef;
16
+ };
17
+ export default useClickOutside;
@@ -0,0 +1,3 @@
1
+ declare const useFontSize: (rem: number) => number;
2
+ export default useFontSize;
3
+ //# sourceMappingURL=useFontSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFontSize.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFontSize.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,WAAW,GAAI,KAAK,MAAM,WAI/B,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ const useFontSize = (rem) => {
2
+ return (rem * parseFloat(window.getComputedStyle(document.documentElement).fontSize));
3
+ };
4
+ export default useFontSize;
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ declare const useHasOverflow: (ref: React.MutableRefObject<HTMLElement | null>, callback?: (isOverflow: boolean) => void) => any;
3
+ export default useHasOverflow;
4
+ //# sourceMappingURL=useHasOverflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHasOverflow.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHasOverflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,QAAA,MAAM,cAAc,GAClB,KAAK,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,EAC/C,WAAW,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,QAiCzC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { useLayoutEffect, useState } from 'react';
2
+ const useHasOverflow = (ref, callback) => {
3
+ const [isOverflow, setIsOverflow] = useState(undefined);
4
+ useLayoutEffect(() => {
5
+ const { current } = ref;
6
+ const trigger = () => {
7
+ const hasOverflow = current.offsetWidth < current.scrollWidth;
8
+ setIsOverflow(hasOverflow);
9
+ if (callback) {
10
+ callback(hasOverflow);
11
+ }
12
+ };
13
+ let observer;
14
+ if (current) {
15
+ if ('ResizeObserver' in window) {
16
+ observer = new ResizeObserver(trigger);
17
+ observer.observe(current);
18
+ }
19
+ trigger();
20
+ }
21
+ return () => {
22
+ observer?.disconnect();
23
+ };
24
+ }, [callback, ref]);
25
+ return isOverflow;
26
+ };
27
+ export default useHasOverflow;
@@ -0,0 +1,3 @@
1
+ declare const useId: () => string;
2
+ export default useId;
3
+ //# sourceMappingURL=useId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useId.d.ts","sourceRoot":"","sources":["../../../src/hooks/useId.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,KAAK,QAAO,MAYjB,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useRef } from 'react';
2
+ import { v4 as uuidv4 } from 'uuid';
3
+ // @todo delegate to react useId hook when React 18 is minimally supported
4
+ const useId = () => {
5
+ const ref = useRef(null);
6
+ const getUniqueId = () => {
7
+ if (ref.current === null) {
8
+ ref.current = uuidv4();
9
+ }
10
+ return ref.current;
11
+ };
12
+ return getUniqueId();
13
+ };
14
+ export default useId;
@@ -0,0 +1,18 @@
1
+ export { default as OutsideEventBehavior } from './components/OutsideEventBehavior';
2
+ export { getCssMedia, mediaMinC, mediaMaxC, calcMediaVal, getMediaVal, mediaMin, mediaFn, mediaSizes, default as media, } from './functions/media';
3
+ export { default as PausableTimeout } from './functions/pausableTimeout';
4
+ export { default as withAlpha } from './styles/withAlpha';
5
+ export { default as ellipsis } from './styles/ellipsis';
6
+ export { default as isReactDevMode } from './functions/isReactDevMode';
7
+ export { isEnterEvent, isSpaceEvent, isEscapeEvent, isArrowDownEvent, isArrowUpEvent, KeyboardEventType, } from './functions/keyboardEvents';
8
+ export { default as useFontSize } from './hooks/useFontSize';
9
+ export { default as useId } from './hooks/useId';
10
+ export { default as useHasOverflow } from './hooks/useHasOverflow';
11
+ export { default as useArrowKeyListIndex } from './hooks/eventKeyHandlers/useArrowKeyListIndex';
12
+ export { default as useGlobalActionKeyHandler } from './hooks/eventKeyHandlers/useGlobalActionKeyHandler';
13
+ export { default as focusNextElementHandler } from './hooks/eventKeyHandlers/focusNextElementHandler';
14
+ export { default as getNextIndexElement } from './hooks/eventKeyHandlers/getNextIndexElement';
15
+ export { default as EventKey } from './hooks/eventKeyHandlers/EventKey';
16
+ export { default as useClickOutside } from './hooks/useClickOutside';
17
+ export { default as useAriaLive, cleanup as cleanupAriaLive, CONTAINER_IDS as ariaLiveContainerIds, } from './hooks/useAriaLive';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEpF,OAAO,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,OAAO,EACP,UAAU,EACV,OAAO,IAAI,KAAK,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC1G,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,OAAO,IAAI,eAAe,EAC1B,aAAa,IAAI,oBAAoB,GACtC,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,17 @@
1
+ export { default as OutsideEventBehavior } from './components/OutsideEventBehavior';
2
+ export { getCssMedia, mediaMinC, mediaMaxC, calcMediaVal, getMediaVal, mediaMin, mediaFn, mediaSizes, default as media, } from './functions/media';
3
+ export { default as PausableTimeout } from './functions/pausableTimeout';
4
+ export { default as withAlpha } from './styles/withAlpha';
5
+ export { default as ellipsis } from './styles/ellipsis';
6
+ export { default as isReactDevMode } from './functions/isReactDevMode';
7
+ export { isEnterEvent, isSpaceEvent, isEscapeEvent, isArrowDownEvent, isArrowUpEvent, } from './functions/keyboardEvents';
8
+ export { default as useFontSize } from './hooks/useFontSize';
9
+ export { default as useId } from './hooks/useId';
10
+ export { default as useHasOverflow } from './hooks/useHasOverflow';
11
+ export { default as useArrowKeyListIndex } from './hooks/eventKeyHandlers/useArrowKeyListIndex';
12
+ export { default as useGlobalActionKeyHandler } from './hooks/eventKeyHandlers/useGlobalActionKeyHandler';
13
+ export { default as focusNextElementHandler } from './hooks/eventKeyHandlers/focusNextElementHandler';
14
+ export { default as getNextIndexElement } from './hooks/eventKeyHandlers/getNextIndexElement';
15
+ export { default as EventKey } from './hooks/eventKeyHandlers/EventKey';
16
+ export { default as useClickOutside } from './hooks/useClickOutside';
17
+ export { default as useAriaLive, cleanup as cleanupAriaLive, CONTAINER_IDS as ariaLiveContainerIds, } from './hooks/useAriaLive';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Truncates single-line text with an ellipsis.
3
+ * A style object, so it works both in styled-components templates and in style objects (e.g. react-select).
4
+ */
5
+ declare const ellipsis: {
6
+ readonly display: "inline-block";
7
+ readonly maxWidth: "100%";
8
+ readonly overflow: "hidden";
9
+ readonly textOverflow: "ellipsis";
10
+ readonly whiteSpace: "nowrap";
11
+ readonly wordWrap: "normal";
12
+ };
13
+ export default ellipsis;
14
+ //# sourceMappingURL=ellipsis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipsis.d.ts","sourceRoot":"","sources":["../../../src/styles/ellipsis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,QAAA,MAAM,QAAQ;;;;;;;CAOJ,CAAC;AAEX,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Truncates single-line text with an ellipsis.
3
+ * A style object, so it works both in styled-components templates and in style objects (e.g. react-select).
4
+ */
5
+ const ellipsis = {
6
+ display: 'inline-block',
7
+ maxWidth: '100%',
8
+ overflow: 'hidden',
9
+ textOverflow: 'ellipsis',
10
+ whiteSpace: 'nowrap',
11
+ wordWrap: 'normal',
12
+ };
13
+ export default ellipsis;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns `color` with the given alpha (0 to 1).
3
+ *
4
+ * A 3- or 6-digit hex colour (every Oxygen token) gives `rgba(r,g,b,alpha)`.
5
+ * Any other CSS colour, e.g. from a custom `OxygenProvider` theme, gives the equivalent `color-mix()`.
6
+ */
7
+ export default function withAlpha(color: string, alpha: number): string;
8
+ //# sourceMappingURL=withAlpha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAlpha.d.ts","sourceRoot":"","sources":["../../../src/styles/withAlpha.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBtE"}
@@ -0,0 +1,18 @@
1
+ const HEX_COLOR = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i;
2
+ /**
3
+ * Returns `color` with the given alpha (0 to 1).
4
+ *
5
+ * A 3- or 6-digit hex colour (every Oxygen token) gives `rgba(r,g,b,alpha)`.
6
+ * Any other CSS colour, e.g. from a custom `OxygenProvider` theme, gives the equivalent `color-mix()`.
7
+ */
8
+ export default function withAlpha(color, alpha) {
9
+ const match = HEX_COLOR.exec(color);
10
+ if (!match) {
11
+ return `color-mix(in srgb, ${color} ${Math.round(alpha * 10000) / 100}%, transparent)`;
12
+ }
13
+ const hex = match[1].length === 3
14
+ ? match[1].replace(/./g, digit => digit + digit)
15
+ : match[1];
16
+ const [red, green, blue] = [0, 2, 4].map(start => parseInt(hex.slice(start, start + 2), 16));
17
+ return `rgba(${red},${green},${blue},${alpha})`;
18
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2021.full.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../src/components/OutsideEventBehavior/OutsideEventBehavior.ts","../src/components/OutsideEventBehavior/index.ts","../../../node_modules/@types/hoist-non-react-statics/index.d.ts","../../../node_modules/@types/styled-components/index.d.ts","../src/functions/media.ts","../src/functions/pausableTimeout.ts","../src/styles/withAlpha.ts","../src/styles/ellipsis.ts","../src/functions/isReactDevMode.ts","../src/hooks/eventKeyHandlers/EventKey.ts","../src/functions/keyboardEvents.ts","../src/hooks/useFontSize.ts","../../../node_modules/@types/uuid/index.d.ts","../src/hooks/useId.ts","../src/hooks/useHasOverflow.ts","../src/hooks/eventKeyHandlers/getNextIndexElement.ts","../src/hooks/eventKeyHandlers/focusNextElementHandler.ts","../src/hooks/eventKeyHandlers/useArrowKeyListIndex.ts","../src/hooks/eventKeyHandlers/useGlobalActionKeyHandler.ts","../src/hooks/useClickOutside.ts","../src/hooks/useAriaLive.ts","../src/index.ts","../src/hooks/eventKeyHandlers/test-utils/dispatchKeyboardEvents.ts","../../../types/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[62],[88],[124],[125,130,159],[126,137,138,145,156,167],[126,127,137,145],[128,168],[129,130,138,146],[130,156,164],[131,133,137,145],[124,132],[133,134],[137],[135,137],[124,137],[137,138,139,156,167],[137,138,139,152,156,159],[122,125,172],[133,137,140,145,156,167],[137,138,140,141,145,156,164,167],[140,142,156,164,167],[88,89,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174],[137,143],[144,167,172],[133,137,145,156],[146],[147],[124,148],[149,166,172],[150],[151],[137,152,153],[152,154,168,170],[125,137,156,157,158,159],[125,156,158],[156,157],[159],[160],[124,156],[137,162,163],[162,163],[130,145,156,164],[165],[145,166],[125,140,151,167],[130,168],[156,169],[144,170],[171],[125,130,137,139,148,156,167,170,172],[156,173],[60,61],[61,62,66],[99,103,167],[99,156,167],[94],[96,99,164,167],[145,164],[175],[94,175],[96,99,145,167],[91,92,95,98,125,137,156,167],[91,97],[95,99,125,159,167,175],[125,175],[115,125,175],[93,94,175],[99],[93,94,95,96,97,98,99,100,101,103,104,105,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121],[99,106,107],[97,99,107,108],[98],[91,94,99],[99,103,107,108],[103],[97,99,102,167],[91,96,97,99,103,106],[125,156],[94,99,115,125,172,175],[62,63],[63,64],[63],[62,63,73],[63,67],[62,63,79],[63,73],[62,63,74,80],[62,63,73,74],[62,63,76],[63,65,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"f13f4b465c99041e912db5c44129a94588e1aafee35a50eab51044833f50b4ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4a70ead7fea07d9abe520cc9e30c04ac035ebceaab28f9e67211610006c65de","impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"bea6c0f5b819cf8cba6608bf3530089119294f949640714011d46ec8013b61c2","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"44e0cba37371c10e6b7fa160bf78e1f70afbaf9d7743f9f385a12e5aa6fa3306","signature":"8ba573debe72c8348b072bc54d9a96454a2b30bfde89760e244d3cc7df46c7b9"},{"version":"be8764f2cb353c259c1b8d706b364e1d975293e7f81ec5ccb50734a00c4f3c74","signature":"e4baa368ade15a8eefd123d68f1047acef34d647416cc14d96c02bb766ffc2e2"},{"version":"a7ca2a9e61286d74bc37fe64e5dcd7da04607f7f5432f7c651b47b573fc76cef","impliedFormat":1},{"version":"cfb95dbcdee02402fb9373c62ec4ba735b5479e5d879f39e7c23fe1d58186e31","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8e38b2bd9c6896d6dbd0a9391ef5b411bccd0b4eafe608fddac0df8ec955801","signature":"b5dc9a2975fbe4d42195a1631f81b583aa05328bcaf372f3f287adddd3236657"},{"version":"82cb2497962ef3950323bb519b6a9e764b1dafb5c55d15a0bde0df785d459f2d","signature":"37c4fc454c50944c762d722e996bf442e6a54b083721763b4eda89b81beb9c85"},{"version":"63aab1dcd0fd0d001c0a5d8b157d70a9d05ea13c5f13919eb2d994d1c31c8e51","signature":"12898fae5f76af0b5182280e316f685a2fcc415d5c6b74bbe57f1b5d98f74ca5"},{"version":"8ddf6051e57e63ceccea92ab4326ec873be3c4e542a928825ca7af70ce929fc8","signature":"560297fcf871fcc76979726f5583372d11609219dee946aaa7b2df2da6b77df4"},{"version":"a93f12b9edc46009fca7714034baeb5eac9d412cb62d9767532eebcf2a9ab25a","signature":"1349872848ac8cf0871aa25eeef00c309b747dda677c4407255ecae1f0645663"},{"version":"7e71fdcff8d0c2a5be34e85ad9d4b226742d73c0e1fedaef9d54f1577ad7cce1","signature":"d4d1debbdbfaa9f09904f1546e1e32df5b827bb6a53b7e551aef3cd7fa829022"},{"version":"ec342fef257813b8ef11345f34bd62aa31a68c33768de7b4f551751da4efca7a","signature":"dfa7f6e8f07789a4aeb10261e4214288e20d385d109950a1c725f6f7def34bf1"},{"version":"ab8ab8e4e568bbbea813932bd9909e53cb79f826156fd8db40bfcc5f04090271","signature":"5234122e6dbb9c25a14536c70c667c408c40f125537310d402b3d4d1d0076a15"},{"version":"7d2b7fe4adb76d8253f20e4dbdce044f1cdfab4902ec33c3604585f553883f7d","impliedFormat":1},{"version":"aafbe1fa28073eb44bb2ddbe4e1b3ca2ba8c14a7af813e8cd4fbd090cf7e7b41","signature":"1dc68bca84846b5a5c70a633d384e311c754cc89a89ebe5c0d7a302251b19556"},{"version":"21907c519fc3e4b132bd96f9f8205e64815afa8d73cb01d796aace59c4c3c560","signature":"c008490357e1a1d6c7aa70a571e2d91d16dbb3fa1ca24be6bc32e92834bf5a22"},{"version":"5e089a7b2d338884c426c9fad1bdc560b2b75db8f48a19ea21d31521edd09e66","signature":"1c45c15325d51b60ac046cc940322ed96b5f997ce8c1023b44beff460e4dc4b8"},{"version":"f62cc707453e80f838d5c2bb4ee4d3333f0b446c9c6a5c577cafb104cf65b969","signature":"36ff6f358a349b32c7a008a09c17cd1ef76ac4dc737fee608974141f4ac5c336"},{"version":"35c30012cbec03b052a1f4f4855ed83329020185d8ed55c924ff3e65b5fe73bc","signature":"70cc6f81f001f78e076b9f8b60bb1e5e90203e05df1116113a2ff32d28a37a1e"},{"version":"df28675afc99dc63796e8b5fe7327e3536bd0c01e27c76dc6fa39bbbc4a09aa6","signature":"97d1087bd140bbc0fa99bdec56cb319d337d89a3d2c62bc05a7059149d79a5f7"},{"version":"14a7288a0f41a21e78f6b255aeb0203936d173c2e27a5aeced07c67cfc879f71","signature":"3f728e647fd98d49571807fb3d2a13430d838c787f54d406a439f9d6701acaa7"},{"version":"54be44cd45d3115c2dce914653c7717c4547a0092575e712a002a6d66efb97b2","signature":"9bbde432e17de6421a6f11d108e30c5c1480b78196ef1dddc5e0114b493467bd"},{"version":"91227bd2955548f84e45a62550474b566b866ef75e5c3e390c8e969b64c3c281","signature":"d3df43d5dd03ecae99af932549e1e5c4248435c6e6008eacb12c9ee8d69721e0"},{"version":"72b10654b5a5d50dcd869d02613e7e96bb6427012325be291488070a74175213","signature":"225672bc9d5ce3fca4f536e4f21dd7eebafff723dc50e715dbfd81391ddb57a1"},{"version":"db511cba39e1c4e09db420649acea9579dc574fcd306daa5884f445ef2366f33","affectsGlobalScope":true},{"version":"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","impliedFormat":1},{"version":"3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","impliedFormat":1},{"version":"e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","impliedFormat":1},{"version":"471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","impliedFormat":1},{"version":"c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","impliedFormat":1},{"version":"40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","impliedFormat":1},{"version":"339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","impliedFormat":1},{"version":"9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","impliedFormat":1},{"version":"8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","impliedFormat":1},{"version":"4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1","impliedFormat":1},{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c","impliedFormat":1},{"version":"7fd7fcbf021a5845bdd9397d4649fcf2fe17152d2098140fc723099a215d19ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df3389f71a71a38bc931aaf1ef97a65fada98f0a27f19dd12f8b8de2b0f4e461","impliedFormat":1},{"version":"d69a3298a197fe5d59edba0ec23b4abf2c8e7b8c6718eac97833633cd664e4c9","impliedFormat":1},{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8b809082dfeffc8cc4f3b9c59f55c0ff52ba12f5ae0766cb5c35deee83b8552e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","impliedFormat":1},{"version":"4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","impliedFormat":1},{"version":"d4f9d3ae2fe1ae199e1c832cca2c44f45e0b305dfa2808afdd51249b6f4a5163","impliedFormat":1},{"version":"7525257b4aa35efc7a1bbc00f205a9a96c4e4ab791da90db41b77938c4e0c18e","impliedFormat":1},{"version":"b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c611eff81287837680c1f4496daf9e737d6f3a1ff17752207814b8f8e1265af","affectsGlobalScope":true,"impliedFormat":1},{"version":"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","impliedFormat":1},{"version":"b5d4e3e524f2eead4519c8e819eaf7fa44a27c22418eff1b7b2d0ebc5fdc510d","impliedFormat":1},{"version":"afb1701fd4be413a8a5a88df6befdd4510c30a31372c07a4138facf61594c66d","impliedFormat":1},{"version":"9bd8e5984676cf28ebffcc65620b4ab5cb38ab2ec0aac0825df8568856895653","impliedFormat":1},{"version":"396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","impliedFormat":1},{"version":"5e8dc64e7e68b2b3ea52ed685cf85239e0d5fb9df31aabc94370c6bc7e19077b","impliedFormat":1},{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"c07146dbbbd8b347241b5df250a51e48f2d7bef19b1e187b1a3f20c849988ff1","impliedFormat":1},{"version":"45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","impliedFormat":1},{"version":"0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7","impliedFormat":1},{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true,"impliedFormat":1},{"version":"46755a4afc53df75f0bfce72259fb971daac826b0cdd8c4eaccad2755a817403","affectsGlobalScope":true,"impliedFormat":1},{"version":"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","impliedFormat":1},{"version":"54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","impliedFormat":1},{"version":"d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","impliedFormat":1},{"version":"8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","impliedFormat":1},{"version":"01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"7fa32887f8a97909fca35ebba3740f8caf8df146618d8fff957a3f89f67a2f6a","impliedFormat":1},{"version":"9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024","impliedFormat":1},{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true,"impliedFormat":1},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","impliedFormat":1},{"version":"4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","impliedFormat":1},{"version":"7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","impliedFormat":1},{"version":"7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df","impliedFormat":1},{"version":"94c086dff8dbc5998749326bc69b520e8e4273fb5b7b58b50e0210e0885dfcde","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebe5facd12fd7745cda5f4bc3319f91fb29dc1f96e57e9c6f8b260a7cc5b67ee","impliedFormat":1},{"version":"79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","impliedFormat":1},{"version":"21c56c6e8eeacef15f63f373a29fab6a2b36e4705be7a528aae8c51469e2737b","impliedFormat":1},{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","impliedFormat":1}],"root":[64,65,[68,75],[77,87]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"jsx":4,"module":99,"noErrorTruncation":false,"noImplicitAny":true,"outDir":"./","skipLibCheck":true,"strict":false,"target":8},"referencedMap":[[66,1],[88,2],[89,2],[124,3],[125,4],[126,5],[127,6],[128,7],[129,8],[130,9],[131,10],[132,11],[133,12],[134,12],[136,13],[135,14],[137,15],[138,16],[139,17],[123,18],[140,19],[141,20],[142,21],[175,22],[143,23],[144,24],[145,25],[146,26],[147,27],[148,28],[149,29],[150,30],[151,31],[152,32],[153,32],[154,33],[156,34],[158,35],[157,36],[159,37],[160,38],[161,39],[162,40],[163,41],[164,42],[165,43],[166,44],[167,45],[168,46],[169,47],[170,48],[171,49],[172,50],[173,51],[62,52],[63,1],[67,53],[106,54],[113,55],[105,54],[120,56],[97,57],[96,58],[119,59],[114,60],[117,61],[99,62],[98,63],[94,64],[93,65],[116,66],[95,67],[100,68],[104,68],[122,69],[121,68],[108,70],[109,71],[111,72],[107,73],[110,74],[115,59],[102,75],[103,76],[112,77],[92,78],[118,79],[64,80],[65,81],[72,82],[74,83],[68,84],[69,82],[73,82],[80,85],[79,82],[86,86],[81,87],[82,88],[84,80],[83,80],[75,82],[78,80],[77,89],[85,90],[71,82],[70,82]],"latestChangedDtsFile":"./src/hooks/eventKeyHandlers/test-utils/dispatchKeyboardEvents.d.ts","version":"6.0.3"}
package/package.json CHANGED
@@ -1,6 +1,26 @@
1
1
  {
2
2
  "name": "@8x8/oxygen-utils",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "3.0.0",
4
+ "description": "Oxygen - Utils",
5
+ "main": "dist/src/index.js",
6
+ "types": "dist/src/index.d.ts",
7
+ "author": "8x8",
8
+ "license": "SEE LICENSE IN LICENSE.md",
9
+ "sideEffects": false,
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "repository": {
14
+ "directory": "packages/utils",
15
+ "type": "git",
16
+ "url": "git@github.com:8x8/oxygen.git"
17
+ },
18
+ "dependencies": {
19
+ "uuid": "9.0.0"
20
+ },
21
+ "peerDependencies": {
22
+ "react": "^16.8.2 || ^17 || ^18 || ^19",
23
+ "react-dom": "^16.8.2 || ^17 || ^18 || ^19",
24
+ "styled-components": "^4.1.2 || >=4.1.2"
25
+ }
26
+ }