This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0eNq03d2yZMdxpulbkeEYbNv+E+4ROuw5nxsYk7WRVEmCCQJoINQ9mra+96kigSKIylWIN+KroxbJXl650yNj5X4+3yv+91d/+PY/3/3ph2+++/F//OH77//9q3/833/7b/781T/+P7/4jx/+t2/++P13f/2v//zNv373+28//Hc//tef3n31j1998+O7//jq66+++/1/fPhPP/z+m2+/+j9ff/XNd//87v/96h/t/3z925d8/4fv//T9Dz/+4jLfuOwP3/zr7959++6PP/7wzR9/96fvv333i+tj55/9+1ea/+efvv7q3Xc/fvPjN+/++pP+5T/81//47j//4w/vfnj/o3y88o//+cP/fPfPv/tLga+/+tP3f35/zfffffiHPrz08K+/+q+v/nHk2/vi//zND+9f4V/+1/rwmn5V0z/W/POP78v967/9+Fi1/1o11t9X9RdVY/OV5sMrjRc1c69mkJ9+7P70QX762nyl5Kfv7T75+qlq/H3VflF1blfN8bqqvai6/m6F/+6P//b7b7773U+fhReV67/9XNv+2/jtd8LetptG3goz8qrD+/lVv3pPbPuDFuSttt1PmtdPRWujaO5+fOfHoq/KjP3V1a9/5PGq7ObHy8fb6x/5Zfd78zPr+broq33A5m5R0py1v/wf3tVXnyp/2920PttzR58iH/HxUzR+/Sl69Y66/33554/nGywc22t1/Fy4N8rmftkGZfc/WWOBsrVdtgyU3b93VYCy+zevIi1b+2VBy+JtvyxoWdh22QYti/2vhQ1aFvufsgYti/1PWZOW7X/KmrRs/1M2Scv2P2WTtGz/UzZJy/Y/ZRO0LPc/ZRO0LPc/ZQu0LPc/ZQu0LPc/ZQu0LPc/ZYu0bP9TtkjLtj9l8UZa1vtlScvmflnSsv3vim+gZWP/N7A30LKx/SkLAy0b+795GWjZiP2yoGUj98uSlu1Lh5GW1aeG9uILzU/OMezVrwyjN2qEfb7G/l3Kx2cLrc/o3rOJvS/2/rp37//dP3z |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Joins two types with a `.`. | |
* | |
* _Pure inspirational typescript wizardry!_ | |
* @note this was copied from the type system of `native-base`. | |
*/ | |
export type Join<K, P> = K extends string | number ? P extends string | number ? `${K}${'' extends P ? '' : '.'}${P}` : never : never; | |
/** | |
* Recursively flattens the keys in the object to key-paths of the leaf nodes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Counts the number of `true` (or `1`) bits in the given integer. | |
* | |
* @remarks This is an efficient algorithm that works for 32-bit integers only. | |
* | |
* @param i The integer to count the number of `true` bits in. | |
* @returns The number of `true` bits in the given integer. | |
* | |
* @see {@link https://stackoverflow.com/a/109025/11236} for the source of this algorithm. | |
* @see {@link https://en.wikipedia.org/wiki/Hamming_weight} for explanations & other efficient implementations. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* A utility type to extract all keys of a given type that are functions. | |
* | |
* @example | |
* class Foo { | |
* static bar = 10; | |
* static baz() { | |
* return 'baz'; | |
* } | |
* } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { useCallback, useRef, useSyncExternalStore } from 'react'; | |
/** | |
* Custom hook to manage a value in localStorage. | |
* | |
* @param key - The key under which the value is stored in localStorage. | |
* @template T - The type of the value stored in localStorage. | |
* @returns A tuple with a value and a setter function. | |
* | |
* @example |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Computes the binomial coefficient of the given pair of integers. This can be used | |
* to compute the number of unique sets of `k` items that can be formed | |
* from a set of `n` items. | |
* | |
* An example usage is for counting the number of possible winning combinations in | |
* a combo multi formed with `n` legs where `k` legs should win. | |
* | |
* The original formula for this is: | |
* ``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Utility to get the bounding client rectangle of an element, | |
* accounting for any CSS transforms applied to it. | |
* | |
* This is useful for accurately determining the position and size of elements | |
* that may have a CSS transform applied (e.g., rotation, scaling, translation). | |
* | |
* @param element The DOM element for which to get the bounding rectangle. | |
* @returns The bounding rectangle of the element, accounting for any CSS transforms. | |
*/ |