From 4c3fc17b52647bc08c161afc18957814836ba357 Mon Sep 17 00:00:00 2001 From: glocore Date: Wed, 2 Nov 2022 14:36:01 +0530 Subject: [PATCH 01/36] make root div focusable so that navigation keys work even when search input is not focused --- cmdk/src/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index f0d607f..d6a9a6f 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -475,7 +475,9 @@ const Command = React.forwardRef((props, forwarded return (
{ etc.onKeyDown?.(e) From 64bef04a0fbf47f706ed12b8136779344ffffe69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Mon, 17 Apr 2023 15:59:23 -0300 Subject: [PATCH 02/36] Use `offsetHeight` to calculate list height (#121) chore: use offsetHeight to calculate list height --- cmdk/src/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 51103c9..763b55a 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -765,7 +765,7 @@ const List = React.forwardRef((props, forwardedRef) = let animationFrame const observer = new ResizeObserver(() => { animationFrame = requestAnimationFrame(() => { - const height = el.getBoundingClientRect().height + const height = el.offsetHeight wrapper.style.setProperty(`--cmdk-list-height`, height.toFixed(1) + 'px') }) }) From 0d74730944c5d286d0b99ec40d726b4913145f81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Tue, 18 Apr 2023 11:39:47 -0300 Subject: [PATCH 03/36] Add `data-disabled` to `Item` and recommend using data attributes (#122) * chore: add data-disabled to item * docs: use data-attributes in docs and examples --- README.md | 2 +- cmdk/src/index.tsx | 1 + website/styles/cmdk/framer.scss | 4 ++-- website/styles/cmdk/linear.scss | 4 ++-- website/styles/cmdk/raycast.scss | 4 ++-- website/styles/cmdk/vercel.scss | 4 ++-- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 40fdc65..9c11f1a 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,7 @@ To scroll item into view earlier near the edges of the viewport, use scroll-padd } ``` -### Item `[cmdk-item]` `[aria-disabled?]` `[aria-selected?]` +### Item `[cmdk-item]` `[data-disabled?]` `[data-selected?]` Item that becomes active on pointer enter. You should provide a unique `value` for each item, but it will be automatically inferred from the `.textContent`. diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 763b55a..fb7ba0b 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -632,6 +632,7 @@ const Item = React.forwardRef((props, forwardedRef) = role="option" aria-disabled={disabled || undefined} aria-selected={selected || undefined} + data-disabled={disabled || undefined} data-selected={selected || undefined} onPointerMove={disabled ? undefined : select} onClick={disabled ? undefined : onSelect} diff --git a/website/styles/cmdk/framer.scss b/website/styles/cmdk/framer.scss index 687306c..639007c 100644 --- a/website/styles/cmdk/framer.scss +++ b/website/styles/cmdk/framer.scss @@ -63,7 +63,7 @@ transition: all 150ms ease; transition-property: none; - &[aria-selected='true'] { + &[data-selected='true'] { background: var(--blue9); color: #ffffff; @@ -72,7 +72,7 @@ } } - &[aria-disabled='true'] { + &[data-disabled='true'] { color: var(--gray8); cursor: not-allowed; } diff --git a/website/styles/cmdk/linear.scss b/website/styles/cmdk/linear.scss index 89493df..f344f87 100644 --- a/website/styles/cmdk/linear.scss +++ b/website/styles/cmdk/linear.scss @@ -75,7 +75,7 @@ transition-property: none; position: relative; - &[aria-selected='true'] { + &[data-selected='true'] { background: var(--gray3); svg { @@ -93,7 +93,7 @@ } } - &[aria-disabled='true'] { + &[data-disabled='true'] { color: var(--gray8); cursor: not-allowed; } diff --git a/website/styles/cmdk/raycast.scss b/website/styles/cmdk/raycast.scss index 07283f5..b69a411 100644 --- a/website/styles/cmdk/raycast.scss +++ b/website/styles/cmdk/raycast.scss @@ -148,12 +148,12 @@ transition: all 150ms ease; transition-property: none; - &[aria-selected='true'] { + &[data-selected='true'] { background: var(--gray4); color: var(--gray12); } - &[aria-disabled='true'] { + &[data-disabled='true'] { color: var(--gray8); cursor: not-allowed; } diff --git a/website/styles/cmdk/vercel.scss b/website/styles/cmdk/vercel.scss index 9d3e55e..78baf0f 100644 --- a/website/styles/cmdk/vercel.scss +++ b/website/styles/cmdk/vercel.scss @@ -66,12 +66,12 @@ transition: all 150ms ease; transition-property: none; - &[aria-selected='true'] { + &[data-selected='true'] { background: var(--grayA3); color: var(--gray12); } - &[aria-disabled='true'] { + &[data-disabled='true'] { color: var(--gray8); cursor: not-allowed; } From bbcc8cfd526afcd81f0125c2a269512648eacf0a Mon Sep 17 00:00:00 2001 From: Daniel Gabriel <56942108+revogabe@users.noreply.github.com> Date: Wed, 3 May 2023 11:13:08 -0300 Subject: [PATCH 04/36] feat: add default value prop (#123) * feat: add default value prop * fix: revert example * fix: check for undefined toLowerCase * fix: prettier test format --- cmdk/src/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index fb7ba0b..7bf45fb 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -74,6 +74,10 @@ type CommandProps = Children & * By default, uses the `command-score` library. */ filter?: (value: string, search: string) => number + /** + * Optional default item value when it is initially rendered. + */ + defaultValue?: string /** * Optional controlled state of the selected command menu item. */ @@ -137,7 +141,7 @@ const Command = React.forwardRef((props, forwarded /** Value of the search query. */ search: '', /** Currently selected item value. */ - value: props.value ?? '', + value: props.value ?? props.defaultValue?.toLowerCase() ?? '', filtered: { /** The count of all visible items. */ count: 0, From 53da94a3a3e816ff3d21a3d9b159ed2d888fbdfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Wed, 3 May 2023 11:14:22 -0300 Subject: [PATCH 05/36] chore: use forceMount from group as fallback (#119) * chore: use forceMount from group as fallback * fix: undefined forceMount * fix: check for null/undefined for group id * fix: add forceMount to deps Co-authored-by: Paco <34928425+pacocoursey@users.noreply.github.com> --------- Co-authored-by: Paco <34928425+pacocoursey@users.noreply.github.com> --- cmdk/src/index.tsx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 7bf45fb..a57f005 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -115,6 +115,10 @@ type Store = { setState: (key: K, value: State[K], opts?: any) => void emit: () => void } +type Group = { + id: string + forceMount?: boolean +} const LIST_SELECTOR = `[cmdk-list-sizer=""]` const GROUP_SELECTOR = `[cmdk-group=""]` @@ -133,7 +137,7 @@ const useCommand = () => React.useContext(CommandContext) const StoreContext = React.createContext(undefined) const useStore = () => React.useContext(StoreContext) // @ts-ignore -const GroupContext = React.createContext(undefined) +const GroupContext = React.createContext(undefined) const Command = React.forwardRef((props, forwardedRef) => { const ref = React.useRef(null) @@ -585,12 +589,13 @@ const Command = React.forwardRef((props, forwarded const Item = React.forwardRef((props, forwardedRef) => { const id = React.useId() const ref = React.useRef(null) - const groupId = React.useContext(GroupContext) + const groupContext = React.useContext(GroupContext) const context = useCommand() const propsRef = useAsRef(props) + const forceMount = propsRef.current?.forceMount ?? groupContext?.forceMount useLayoutEffect(() => { - return context.item(id, groupId) + return context.item(id, groupContext?.id) }, []) const value = useValue(id, ref, [props.value, props.children, ref]) @@ -598,13 +603,7 @@ const Item = React.forwardRef((props, forwardedRef) = const store = useStore() const selected = useCmdk((state) => state.value && state.value === value.current) const render = useCmdk((state) => - props.forceMount - ? true - : context.filter() === false - ? true - : !state.search - ? true - : state.filtered.items.get(id) > 0, + forceMount ? true : context.filter() === false ? true : !state.search ? true : state.filtered.items.get(id) > 0, ) React.useEffect(() => { @@ -651,14 +650,14 @@ const Item = React.forwardRef((props, forwardedRef) = * Grouped items are always shown together. */ const Group = React.forwardRef((props, forwardedRef) => { - const { heading, children, ...etc } = props + const { heading, children, forceMount, ...etc } = props const id = React.useId() const ref = React.useRef(null) const headingRef = React.useRef(null) const headingId = React.useId() const context = useCommand() const render = useCmdk((state) => - props.forceMount ? true : context.filter() === false ? true : !state.search ? true : state.filtered.groups.has(id), + forceMount ? true : context.filter() === false ? true : !state.search ? true : state.filtered.groups.has(id), ) useLayoutEffect(() => { @@ -667,7 +666,8 @@ const Group = React.forwardRef((props, forwardedRef) useValue(id, ref, [props.value, props.heading, headingRef]) - const inner = {children} + const contextValue = React.useMemo(() => ({ id, forceMount }), [forceMount]) + const inner = {children} return (
Date: Wed, 3 May 2023 10:17:43 -0400 Subject: [PATCH 06/36] Fix: `selected` and `disabled` state (#84) * Add "data-selected" attribute to Item Component * fix:`selected` and `disabled` state --------- Co-authored-by: Paco <34928425+pacocoursey@users.noreply.github.com> --- cmdk/src/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index a57f005..303ef29 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -633,10 +633,10 @@ const Item = React.forwardRef((props, forwardedRef) = id={id} cmdk-item="" role="option" - aria-disabled={disabled || undefined} - aria-selected={selected || undefined} - data-disabled={disabled || undefined} - data-selected={selected || undefined} + aria-disabled={disabled ?? undefined} + aria-selected={selected ?? undefined} + data-disabled={disabled ?? undefined} + data-selected={selected ?? undefined} onPointerMove={disabled ? undefined : select} onClick={disabled ? undefined : onSelect} > From 0f5bf586b1981782d9d21eb80128826056a01e93 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Wed, 3 May 2023 10:38:18 -0400 Subject: [PATCH 07/36] Revert "Fix: `selected` and `disabled` state" (#131) Revert "Fix: `selected` and `disabled` state (#84)" This reverts commit aeeaf32e89563e10d15bbaef8da86bf9fd015467. --- cmdk/src/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 303ef29..a57f005 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -633,10 +633,10 @@ const Item = React.forwardRef((props, forwardedRef) = id={id} cmdk-item="" role="option" - aria-disabled={disabled ?? undefined} - aria-selected={selected ?? undefined} - data-disabled={disabled ?? undefined} - data-selected={selected ?? undefined} + aria-disabled={disabled || undefined} + aria-selected={selected || undefined} + data-disabled={disabled || undefined} + data-selected={selected || undefined} onPointerMove={disabled ? undefined : select} onClick={disabled ? undefined : onSelect} > From 45be6deb983e052e04de0abb47764f2a22b77d57 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Wed, 3 May 2023 19:25:33 -0400 Subject: [PATCH 08/36] Bring in local dependency of command-score (#130) * move command-score into local dep * remove command-score dep * add tests from #16 * update lockfile --- cmdk/package.json | 3 +- cmdk/src/command-score.ts | 161 ++++++++++++++++++++++++++++++++++++++ cmdk/src/index.tsx | 2 +- pnpm-lock.yaml | 6 -- test/numeric.test.ts | 25 ++++++ test/pages/numeric.tsx | 22 ++++++ 6 files changed, 210 insertions(+), 9 deletions(-) create mode 100644 cmdk/src/command-score.ts create mode 100644 test/numeric.test.ts create mode 100644 test/pages/numeric.tsx diff --git a/cmdk/package.json b/cmdk/package.json index 8fcec53..f4b5a87 100644 --- a/cmdk/package.json +++ b/cmdk/package.json @@ -19,8 +19,7 @@ "react-dom": "^18.0.0" }, "dependencies": { - "@radix-ui/react-dialog": "1.0.0", - "command-score": "0.1.2" + "@radix-ui/react-dialog": "1.0.0" }, "devDependencies": { "@types/react": "18.0.15" diff --git a/cmdk/src/command-score.ts b/cmdk/src/command-score.ts new file mode 100644 index 0000000..f79cccc --- /dev/null +++ b/cmdk/src/command-score.ts @@ -0,0 +1,161 @@ +// The scores are arranged so that a continuous match of characters will +// result in a total score of 1. +// +// The best case, this character is a match, and either this is the start +// of the string, or the previous character was also a match. +var SCORE_CONTINUE_MATCH = 1, + // A new match at the start of a word scores better than a new match + // elsewhere as it's more likely that the user will type the starts + // of fragments. + // NOTE: We score word jumps between spaces slightly higher than slashes, brackets + // hyphens, etc. + SCORE_SPACE_WORD_JUMP = 0.9, + SCORE_NON_SPACE_WORD_JUMP = 0.8, + // Any other match isn't ideal, but we include it for completeness. + SCORE_CHARACTER_JUMP = 0.17, + // If the user transposed two letters, it should be significantly penalized. + // + // i.e. "ouch" is more likely than "curtain" when "uc" is typed. + SCORE_TRANSPOSITION = 0.1, + // The goodness of a match should decay slightly with each missing + // character. + // + // i.e. "bad" is more likely than "bard" when "bd" is typed. + // + // This will not change the order of suggestions based on SCORE_* until + // 100 characters are inserted between matches. + PENALTY_SKIPPED = 0.999, + // The goodness of an exact-case match should be higher than a + // case-insensitive match by a small amount. + // + // i.e. "HTML" is more likely than "haml" when "HM" is typed. + // + // This will not change the order of suggestions based on SCORE_* until + // 1000 characters are inserted between matches. + PENALTY_CASE_MISMATCH = 0.9999, + // Match higher for letters closer to the beginning of the word + PENALTY_DISTANCE_FROM_START = 0.9, + // If the word has more characters than the user typed, it should + // be penalised slightly. + // + // i.e. "html" is more likely than "html5" if I type "html". + // + // However, it may well be the case that there's a sensible secondary + // ordering (like alphabetical) that it makes sense to rely on when + // there are many prefix matches, so we don't make the penalty increase + // with the number of tokens. + PENALTY_NOT_COMPLETE = 0.99 + +var IS_GAP_REGEXP = /[\\\/_+.#"@\[\(\{&]/, + COUNT_GAPS_REGEXP = /[\\\/_+.#"@\[\(\{&]/g, + IS_SPACE_REGEXP = /[\s-]/, + COUNT_SPACE_REGEXP = /[\s-]/g + +function commandScoreInner( + string, + abbreviation, + lowerString, + lowerAbbreviation, + stringIndex, + abbreviationIndex, + memoizedResults, +) { + if (abbreviationIndex === abbreviation.length) { + if (stringIndex === string.length) { + return SCORE_CONTINUE_MATCH + } + return PENALTY_NOT_COMPLETE + } + + var memoizeKey = `${stringIndex},${abbreviationIndex}` + if (memoizedResults[memoizeKey] !== undefined) { + return memoizedResults[memoizeKey] + } + + var abbreviationChar = lowerAbbreviation.charAt(abbreviationIndex) + var index = lowerString.indexOf(abbreviationChar, stringIndex) + var highScore = 0 + + var score, transposedScore, wordBreaks, spaceBreaks + + while (index >= 0) { + score = commandScoreInner( + string, + abbreviation, + lowerString, + lowerAbbreviation, + index + 1, + abbreviationIndex + 1, + memoizedResults, + ) + if (score > highScore) { + if (index === stringIndex) { + score *= SCORE_CONTINUE_MATCH + } else if (IS_GAP_REGEXP.test(string.charAt(index - 1))) { + score *= SCORE_NON_SPACE_WORD_JUMP + wordBreaks = string.slice(stringIndex, index - 1).match(COUNT_GAPS_REGEXP) + if (wordBreaks && stringIndex > 0) { + score *= Math.pow(PENALTY_SKIPPED, wordBreaks.length) + } + } else if (IS_SPACE_REGEXP.test(string.charAt(index - 1))) { + score *= SCORE_SPACE_WORD_JUMP + spaceBreaks = string.slice(stringIndex, index - 1).match(COUNT_SPACE_REGEXP) + if (spaceBreaks && stringIndex > 0) { + score *= Math.pow(PENALTY_SKIPPED, spaceBreaks.length) + } + } else { + score *= SCORE_CHARACTER_JUMP + if (stringIndex > 0) { + score *= Math.pow(PENALTY_SKIPPED, index - stringIndex) + } + } + + if (string.charAt(index) !== abbreviation.charAt(abbreviationIndex)) { + score *= PENALTY_CASE_MISMATCH + } + } + + if ( + (score < SCORE_TRANSPOSITION && + lowerString.charAt(index - 1) === lowerAbbreviation.charAt(abbreviationIndex + 1)) || + (lowerAbbreviation.charAt(abbreviationIndex + 1) === lowerAbbreviation.charAt(abbreviationIndex) && // allow duplicate letters. Ref #7428 + lowerString.charAt(index - 1) !== lowerAbbreviation.charAt(abbreviationIndex)) + ) { + transposedScore = commandScoreInner( + string, + abbreviation, + lowerString, + lowerAbbreviation, + index + 1, + abbreviationIndex + 2, + memoizedResults, + ) + + if (transposedScore * SCORE_TRANSPOSITION > score) { + score = transposedScore * SCORE_TRANSPOSITION + } + } + + if (score > highScore) { + highScore = score + } + + index = lowerString.indexOf(abbreviationChar, index + 1) + } + + memoizedResults[memoizeKey] = highScore + return highScore +} + +function formatInput(string) { + // convert all valid space characters to space so they match each other + return string.toLowerCase().replace(COUNT_SPACE_REGEXP, ' ') +} + +export function commandScore(string: string, abbreviation: string): number { + /* NOTE: + * in the original, we used to do the lower-casing on each recursive call, but this meant that toLowerCase() + * was the dominating cost in the algorithm, passing both is a little ugly, but considerably faster. + */ + return commandScoreInner(string, abbreviation, formatInput(string), formatInput(abbreviation), 0, 0, {}) +} diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index a57f005..bd5c229 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -1,6 +1,6 @@ import * as RadixDialog from '@radix-ui/react-dialog' import * as React from 'react' -import commandScore from 'command-score' +import { commandScore } from './command-score' type Children = { children?: React.ReactNode } type DivProps = React.HTMLAttributes diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 324b651..870b215 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,10 +18,8 @@ importers: specifiers: '@radix-ui/react-dialog': 1.0.0 '@types/react': 18.0.15 - command-score: 0.1.2 dependencies: '@radix-ui/react-dialog': 1.0.0_@types+react@18.0.15 - command-score: 0.1.2 devDependencies: '@types/react': 18.0.15 @@ -1440,10 +1438,6 @@ packages: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true - /command-score/0.1.2: - resolution: {integrity: sha512-VtDvQpIJBvBatnONUsPzXYFVKQQAhuf3XTNOAsdBxCNO/QCtUUd8LSgjn0GVarBkCad6aJCZfXgrjYbl/KRr7w==} - dev: false - /commander/4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} diff --git a/test/numeric.test.ts b/test/numeric.test.ts new file mode 100644 index 0000000..28a0a10 --- /dev/null +++ b/test/numeric.test.ts @@ -0,0 +1,25 @@ +import { expect, test } from '@playwright/test' + +test.describe('behavior for numeric values', async () => { + test.beforeEach(async ({ page }) => { + await page.goto('/numeric') + }) + + test('items filter correctly on numeric inputs', async ({ page }) => { + const input = page.locator(`[cmdk-input]`) + await input.type('112') + const removed = page.locator(`[cmdk-item][data-value="removed"]`) + const remains = page.locator(`[cmdk-item][data-value="foo.bar112.value"]`) + await expect(removed).toHaveCount(0) + await expect(remains).toHaveCount(1) + }) + + test('items filter correctly on non-numeric inputs', async ({ page }) => { + const input = page.locator(`[cmdk-input]`) + await input.type('bar') + const removed = page.locator(`[cmdk-item][data-value="removed"]`) + const remains = page.locator(`[cmdk-item][data-value="foo.bar112.value"]`) + await expect(removed).toHaveCount(0) + await expect(remains).toHaveCount(1) + }) +}) diff --git a/test/pages/numeric.tsx b/test/pages/numeric.tsx new file mode 100644 index 0000000..e05ad7e --- /dev/null +++ b/test/pages/numeric.tsx @@ -0,0 +1,22 @@ +import { Command } from 'cmdk' + +const Page = () => { + return ( +
+ + + + No results. + + To be removed + + + Not to be removed + + + +
+ ) +} + +export default Page From 563c2bd9317ae00d2ce7c38bba0fc06064142531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Wed, 10 May 2023 10:34:14 -0300 Subject: [PATCH 09/36] docs: add forceMount prop (#134) * docs: add forceMount prop * Apply suggestions from code review --------- Co-authored-by: Paco <34928425+pacocoursey@users.noreply.github.com> --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9c11f1a..4134418 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,8 @@ Item that becomes active on pointer enter. You should provide a unique `value` f ``` +You can force an item to always render, regardless of filtering, by passing the `forceMount` prop. + ### Group `[cmdk-group]` `[hidden?]` Groups items together with the given `heading` (`[cmdk-group-heading]`). @@ -221,6 +223,8 @@ Groups items together with the given `heading` (`[cmdk-group-heading]`). Groups will not unmount from the DOM, rather the `hidden` attribute is applied to hide it from view. This may be relevant in your styling. +You can force a group to always render, regardless of filtering, by passing the `forceMount` prop. + ### Separator `[cmdk-separator]` Visible when the search query is empty or `alwaysRender` is true, hidden otherwise. From db1e29aa7ee173bf3ac269f9f815ee45ebbabd56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Mon, 15 May 2023 11:26:27 -0300 Subject: [PATCH 10/36] docs: update dialog example (#136) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4134418..6a83a76 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,8 @@ const CommandMenu = () => { // Toggle the menu when ⌘K is pressed React.useEffect(() => { const down = (e) => { - if (e.key === 'k' && e.metaKey) { + if (e.key === 'k' && (e.metaKey || e.ctrlKey)) { + e.preventDefault() setOpen((open) => !open) } } From a5e4004970e3b46cd9d5c153213fba2060bf2fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=E2=80=94Rysana?= <51100181+jrysana@users.noreply.github.com> Date: Wed, 5 Jul 2023 12:48:14 -0400 Subject: [PATCH 11/36] Add links to title badges (#151) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a83a76..b397494 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

-# ⌘K ![cmdk minzip package size](https://img.shields.io/bundlephobia/minzip/cmdk) ![cmdk package version](https://img.shields.io/npm/v/cmdk.svg?colorB=green) +# ⌘K [![cmdk minzip package size](https://img.shields.io/bundlephobia/minzip/cmdk)](https://www.npmjs.com/package/cmdk?activeTab=code) [![cmdk package version](https://img.shields.io/npm/v/cmdk.svg?colorB=green)](https://www.npmjs.com/package/cmdk) ⌘K is a command menu React component that can also be used as an accessible combobox. You render items, it filters and sorts them automatically. ⌘K supports a fully composable API [How?](/ARCHITECTURE.md), so you can wrap items in other components or even as static JSX. From 986e06ba2fd9febb72f9deb1068669d578d0e704 Mon Sep 17 00:00:00 2001 From: Chase Adams Date: Fri, 14 Jul 2023 10:09:04 -0700 Subject: [PATCH 12/36] docs: tiny fix (#153) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b397494..9056e81 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,9 @@ Or disable filtering and sorting entirely: You can make the arrow keys wrap around the list (when you reach the end, it goes back to the first item) by setting the `loop` prop: +```tsx +``` ### Dialog `[cmdk-dialog]` `[cmdk-overlay]` From ba2e20035ad86a2cb0fae0c2c296796e48a0181c Mon Sep 17 00:00:00 2001 From: Chase Adams Date: Fri, 14 Jul 2023 10:09:46 -0700 Subject: [PATCH 13/36] fix: added div props type to loading (#154) --- cmdk/src/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index bd5c229..fcbd83c 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -5,7 +5,7 @@ import { commandScore } from './command-score' type Children = { children?: React.ReactNode } type DivProps = React.HTMLAttributes -type LoadingProps = Children & { +type LoadingProps = Children & DivProps & { /** Estimated progress of loading asynchronous options. */ progress?: number } From dc0d0e59ba021846ddad85f5bc05c240db15a8a0 Mon Sep 17 00:00:00 2001 From: Brian Krausz Date: Mon, 14 Aug 2023 09:20:17 -0700 Subject: [PATCH 14/36] Add option for disabling vim bindings (#168) --- cmdk/src/index.tsx | 19 ++++++++++++------- test/keybind.test.ts | 22 ++++++++++++++++++++++ test/pages/keybinds.tsx | 6 +++++- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index fcbd83c..62b9ae8 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -5,10 +5,11 @@ import { commandScore } from './command-score' type Children = { children?: React.ReactNode } type DivProps = React.HTMLAttributes -type LoadingProps = Children & DivProps & { - /** Estimated progress of loading asynchronous options. */ - progress?: number -} +type LoadingProps = Children & + DivProps & { + /** Estimated progress of loading asynchronous options. */ + progress?: number + } type EmptyProps = Children & DivProps & {} type SeparatorProps = DivProps & { /** Whether this separator should always be rendered. Useful if you disable automatic filtering. */ @@ -90,6 +91,10 @@ type CommandProps = Children & * Optionally set to `true` to turn on looping around when using the arrow keys. */ loop?: boolean + /** + * Set to `false` to disable ctrl+n/j/p/k shortcuts. Defaults to `true`. + */ + vimBindings?: boolean } type Context = { @@ -160,7 +165,7 @@ const Command = React.forwardRef((props, forwarded const ids = useLazyRef>(() => new Map()) // id → value const listeners = useLazyRef void>>(() => new Set()) // [...rerenders] const propsRef = useAsRef(props) - const { label, children, value, onValueChange, filter, shouldFilter, ...etc } = props + const { label, children, value, onValueChange, filter, shouldFilter, vimBindings = true, ...etc } = props const listId = React.useId() const labelId = React.useId() @@ -519,7 +524,7 @@ const Command = React.forwardRef((props, forwarded case 'n': case 'j': { // vim keybind down - if (e.ctrlKey) { + if (vimBindings && e.ctrlKey) { next(e) } break @@ -531,7 +536,7 @@ const Command = React.forwardRef((props, forwarded case 'p': case 'k': { // vim keybind up - if (e.ctrlKey) { + if (vimBindings && e.ctrlKey) { prev(e) } break diff --git a/test/keybind.test.ts b/test/keybind.test.ts index a4dd8c6..a0de293 100644 --- a/test/keybind.test.ts +++ b/test/keybind.test.ts @@ -101,3 +101,25 @@ test.describe('vim np keybinds', async () => { await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') }) }) + +test.describe('no-vim keybinds', async () => { + test.beforeEach(async ({ page }) => { + await page.goto('/keybinds?noVim=true') + }) + + test('ctrl j/k does nothing', async ({ page }) => { + await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') + await page.locator(`[cmdk-input]`).press('Control+j') + await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') + await page.locator(`[cmdk-input]`).press('Control+k') + await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') + }) + + test('ctrl n/p does nothing', async ({ page }) => { + await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') + await page.locator(`[cmdk-input]`).press('Control+n') + await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') + await page.locator(`[cmdk-input]`).press('Control+p') + await expect(page.locator(`[cmdk-item][aria-selected="true"]`)).toHaveAttribute('data-value', 'first') + }) +}) diff --git a/test/pages/keybinds.tsx b/test/pages/keybinds.tsx index be69dc9..3c119a0 100644 --- a/test/pages/keybinds.tsx +++ b/test/pages/keybinds.tsx @@ -1,10 +1,14 @@ import { Command } from 'cmdk' +import { useRouter } from 'next/router' import * as React from 'react' const Page = () => { + const { + query: { noVim }, + } = useRouter() return (
- + No results. From 5c24283c927ad0a47a0fd84b7b57af1b27a906c2 Mon Sep 17 00:00:00 2001 From: Hajime Nakagawa <51704330+hajimism@users.noreply.github.com> Date: Tue, 15 Aug 2023 01:26:40 +0900 Subject: [PATCH 15/36] fix: IME conversion bug (#166) fix: skip item select with enter key while composing --- cmdk/src/index.tsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 62b9ae8..eed8348 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -558,12 +558,16 @@ const Command = React.forwardRef((props, forwarded break } case 'Enter': { - // Trigger item onSelect - e.preventDefault() - const item = getSelectedItem() - if (item) { - const event = new Event(SELECT_EVENT) - item.dispatchEvent(event) + // Check if IME composition is finished before triggering onSelect + // This prevents unwanted triggering while user is still inputting text with IME + if (!e.nativeEvent.isComposing) { + // Trigger item onSelect + e.preventDefault() + const item = getSelectedItem() + if (item) { + const event = new Event(SELECT_EVENT) + item.dispatchEvent(event) + } } } } From 05199cbad94a800ee98510645f138537f368dc85 Mon Sep 17 00:00:00 2001 From: Ian Jones Date: Thu, 31 Aug 2023 20:40:52 -0400 Subject: [PATCH 16/36] Fix bug with backspacing (#176) --- cmdk/src/index.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index eed8348..c38ccfe 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -971,8 +971,11 @@ function useValue( return part.trim().toLowerCase() } - if (typeof part === 'object' && 'current' in part && part.current) { - return part.current.textContent?.trim().toLowerCase() + if (typeof part === 'object' && 'current' in part) { + if (part.current) { + return part.current.textContent?.trim().toLowerCase() + } + return valueRef.current } } })() From eb7787696c02cc433ba8a3415682245f3859a3e1 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:35:48 -0800 Subject: [PATCH 17/36] update playwright and pnpm version --- package.json | 8 +- pnpm-lock.yaml | 1504 ++++++++++++++++++++++++------------------------ 2 files changed, 769 insertions(+), 743 deletions(-) diff --git a/package.json b/package.json index 8100d5c..9d8bc71 100644 --- a/package.json +++ b/package.json @@ -12,10 +12,10 @@ "test": "playwright test" }, "devDependencies": { - "@playwright/test": "1.24.1", + "@playwright/test": "1.41.1", + "prettier": "2.7.1", "tsup": "6.2.1", - "typescript": "4.6.4", - "prettier": "2.7.1" + "typescript": "4.6.4" }, - "packageManager": "pnpm@7.9.0" + "packageManager": "pnpm@8.8.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 870b215..bee9bc2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,109 +1,152 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false importers: .: - specifiers: - '@playwright/test': 1.24.1 - prettier: 2.7.1 - tsup: 6.2.1 - typescript: 4.6.4 devDependencies: - '@playwright/test': 1.24.1 - prettier: 2.7.1 - tsup: 6.2.1_typescript@4.6.4 - typescript: 4.6.4 + '@playwright/test': + specifier: 1.41.1 + version: 1.41.1 + prettier: + specifier: 2.7.1 + version: 2.7.1 + tsup: + specifier: 6.2.1 + version: 6.2.1(typescript@4.6.4) + typescript: + specifier: 4.6.4 + version: 4.6.4 cmdk: - specifiers: - '@radix-ui/react-dialog': 1.0.0 - '@types/react': 18.0.15 dependencies: - '@radix-ui/react-dialog': 1.0.0_@types+react@18.0.15 + '@radix-ui/react-dialog': + specifier: 1.0.0 + version: 1.0.0(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18.0.0 + version: 18.2.0 + react-dom: + specifier: ^18.0.0 + version: 18.2.0(react@18.2.0) devDependencies: - '@types/react': 18.0.15 + '@types/react': + specifier: 18.0.15 + version: 18.0.15 test: - specifiers: - '@types/node': 18.0.4 - '@types/react': 18.0.15 - '@types/react-dom': 18.0.6 - cmdk: workspace:* - next: 12.1.6 - react: 18.2.0 - react-dom: 18.2.0 - typescript: 4.7.4 dependencies: - '@types/node': 18.0.4 - '@types/react': 18.0.15 - '@types/react-dom': 18.0.6 - cmdk: link:../cmdk - next: 12.1.6_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - typescript: 4.7.4 + '@types/node': + specifier: 18.0.4 + version: 18.0.4 + '@types/react': + specifier: 18.0.15 + version: 18.0.15 + '@types/react-dom': + specifier: 18.0.6 + version: 18.0.6 + cmdk: + specifier: workspace:* + version: link:../cmdk + next: + specifier: 12.1.6 + version: 12.1.6(react-dom@18.2.0)(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + typescript: + specifier: 4.7.4 + version: 4.7.4 website: - specifiers: - '@radix-ui/react-popover': ^0.1.6 - '@types/node': 18.0.4 - '@types/react': 18.0.15 - '@types/react-dom': 18.0.6 - babel-eslint: ^10.1.0 - cmdk: workspace:* - copy-to-clipboard: ^3.3.1 - eslint: ^8.19.0 - eslint-config-next: 12.2.2 - eslint-config-prettier: ^8.5.0 - eslint-plugin-prettier: ^4.2.1 - eslint-plugin-react: ^7.30.1 - framer-motion: ^6.5.1 - husky: ^8.0.1 - lint-staged: ^13.0.3 - next: 12.2.2 - next-seo: ^5.5.0 - next-themes: ^0.2.0 - prism-react-renderer: ^1.3.5 - react: 18.2.0 - react-dom: 18.2.0 - sass: ^1.53.0 - typescript: 4.7.4 dependencies: - '@radix-ui/react-popover': 0.1.6_bb2bxwco6ptpubzwpazr52qf6i - cmdk: link:../cmdk - copy-to-clipboard: 3.3.2 - framer-motion: 6.5.1_biqbaboplfbrettd7655fr4n2y - next: 12.2.2_qn5eqpoej7on3nhyoj73scbypy - next-seo: 5.5.0_7gpduzaz4csxytrukenoyuq3te - next-themes: 0.2.0_7gpduzaz4csxytrukenoyuq3te - prism-react-renderer: 1.3.5_react@18.2.0 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - sass: 1.54.3 + '@radix-ui/react-popover': + specifier: ^0.1.6 + version: 0.1.6(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + cmdk: + specifier: workspace:* + version: link:../cmdk + copy-to-clipboard: + specifier: ^3.3.1 + version: 3.3.2 + framer-motion: + specifier: ^6.5.1 + version: 6.5.1(react-dom@18.2.0)(react@18.2.0) + next: + specifier: 12.2.2 + version: 12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) + next-seo: + specifier: ^5.5.0 + version: 5.5.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0) + next-themes: + specifier: ^0.2.0 + version: 0.2.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0) + prism-react-renderer: + specifier: ^1.3.5 + version: 1.3.5(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + sass: + specifier: ^1.53.0 + version: 1.54.3 devDependencies: - '@types/node': 18.0.4 - '@types/react': 18.0.15 - '@types/react-dom': 18.0.6 - babel-eslint: 10.1.0_eslint@8.21.0 - eslint: 8.21.0 - eslint-config-next: 12.2.2_qugx7qdu5zevzvxaiqyxfiwquq - eslint-config-prettier: 8.5.0_eslint@8.21.0 - eslint-plugin-prettier: 4.2.1_xjqqwxedbbipvi5zccjm3mixku - eslint-plugin-react: 7.30.1_eslint@8.21.0 - husky: 8.0.1 - lint-staged: 13.0.3 - typescript: 4.7.4 + '@types/node': + specifier: 18.0.4 + version: 18.0.4 + '@types/react': + specifier: 18.0.15 + version: 18.0.15 + '@types/react-dom': + specifier: 18.0.6 + version: 18.0.6 + babel-eslint: + specifier: ^10.1.0 + version: 10.1.0(eslint@8.21.0) + eslint: + specifier: ^8.19.0 + version: 8.21.0 + eslint-config-next: + specifier: 12.2.2 + version: 12.2.2(eslint@8.21.0)(typescript@4.7.4) + eslint-config-prettier: + specifier: ^8.5.0 + version: 8.5.0(eslint@8.21.0) + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.5.0)(eslint@8.21.0)(prettier@3.2.4) + eslint-plugin-react: + specifier: ^7.30.1 + version: 7.30.1(eslint@8.21.0) + husky: + specifier: ^8.0.1 + version: 8.0.1 + lint-staged: + specifier: ^13.0.3 + version: 13.0.3 + typescript: + specifier: 4.7.4 + version: 4.7.4 packages: - /@babel/code-frame/7.18.6: + /@babel/code-frame@7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 dev: true - /@babel/generator/7.18.12: + /@babel/generator@7.18.12: resolution: {integrity: sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==} engines: {node: '>=6.9.0'} dependencies: @@ -112,12 +155,12 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-environment-visitor/7.18.9: + /@babel/helper-environment-visitor@7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name/7.18.9: + /@babel/helper-function-name@7.18.9: resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} engines: {node: '>=6.9.0'} dependencies: @@ -125,31 +168,31 @@ packages: '@babel/types': 7.18.10 dev: true - /@babel/helper-hoist-variables/7.18.6: + /@babel/helper-hoist-variables@7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.10 dev: true - /@babel/helper-split-export-declaration/7.18.6: + /@babel/helper-split-export-declaration@7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.10 dev: true - /@babel/helper-string-parser/7.18.10: + /@babel/helper-string-parser@7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier/7.18.6: + /@babel/helper-validator-identifier@7.18.6: resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} engines: {node: '>=6.9.0'} dev: true - /@babel/highlight/7.18.6: + /@babel/highlight@7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} dependencies: @@ -158,7 +201,7 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.18.11: + /@babel/parser@7.18.11: resolution: {integrity: sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -166,7 +209,7 @@ packages: '@babel/types': 7.18.10 dev: true - /@babel/runtime-corejs3/7.18.9: + /@babel/runtime-corejs3@7.18.9: resolution: {integrity: sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==} engines: {node: '>=6.9.0'} dependencies: @@ -174,13 +217,13 @@ packages: regenerator-runtime: 0.13.9 dev: true - /@babel/runtime/7.18.9: + /@babel/runtime@7.18.9: resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 - /@babel/template/7.18.10: + /@babel/template@7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} dependencies: @@ -189,7 +232,7 @@ packages: '@babel/types': 7.18.10 dev: true - /@babel/traverse/7.18.11: + /@babel/traverse@7.18.11: resolution: {integrity: sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==} engines: {node: '>=6.9.0'} dependencies: @@ -207,7 +250,7 @@ packages: - supports-color dev: true - /@babel/types/7.18.10: + /@babel/types@7.18.10: resolution: {integrity: sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==} engines: {node: '>=6.9.0'} dependencies: @@ -216,7 +259,7 @@ packages: to-fast-properties: 2.0.0 dev: true - /@emotion/is-prop-valid/0.8.8: + /@emotion/is-prop-valid@0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} requiresBuild: true dependencies: @@ -224,12 +267,13 @@ packages: dev: false optional: true - /@emotion/memoize/0.7.4: + /@emotion/memoize@0.7.4: resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + requiresBuild: true dev: false optional: true - /@esbuild/linux-loong64/0.14.54: + /@esbuild/linux-loong64@0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} engines: {node: '>=12'} cpu: [loong64] @@ -238,7 +282,7 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.0: + /@eslint/eslintrc@1.3.0: resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -255,7 +299,7 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.10.4: + /@humanwhocodes/config-array@0.10.4: resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} engines: {node: '>=10.10.0'} dependencies: @@ -266,15 +310,15 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: + /@humanwhocodes/gitignore-to-minimatch@1.0.2: resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} dev: true - /@humanwhocodes/object-schema/1.2.1: + /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@jridgewell/gen-mapping/0.3.2: + /@jridgewell/gen-mapping@0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} engines: {node: '>=6.0.0'} dependencies: @@ -283,28 +327,28 @@ packages: '@jridgewell/trace-mapping': 0.3.14 dev: true - /@jridgewell/resolve-uri/3.1.0: + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array/1.1.2: + /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.14: + /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.14: + /@jridgewell/trace-mapping@0.3.14: resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@motionone/animation/10.13.2: + /@motionone/animation@10.13.2: resolution: {integrity: sha512-YGWss58IR2X4lOjW89rv1Q+/Nq/QhfltaggI7i8sZTpKC1yUvM+XYDdvlRpWc6dk8LviMBrddBJAlLdbaqeRmw==} dependencies: '@motionone/easing': 10.13.2 @@ -313,7 +357,7 @@ packages: tslib: 2.4.0 dev: false - /@motionone/dom/10.12.0: + /@motionone/dom@10.12.0: resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==} dependencies: '@motionone/animation': 10.13.2 @@ -324,14 +368,14 @@ packages: tslib: 2.4.0 dev: false - /@motionone/easing/10.13.2: + /@motionone/easing@10.13.2: resolution: {integrity: sha512-3HqctS5NyDfDQ+8+cZqc3Pu7I6amFCt9zDUjcozHyFXHh4PKYHK4+GJDFjJIS8bCAF2BrJmpmduDQ2V7lFEYeQ==} dependencies: '@motionone/utils': 10.13.2 tslib: 2.4.0 dev: false - /@motionone/generators/10.13.2: + /@motionone/generators@10.13.2: resolution: {integrity: sha512-QMoXV1MXEEhR6D3dct/RMMS1FwJlAsW+kMPbFGzBA4NbweblgeYQCft9DcDAVpV9wIwD6qvlBG9u99sOXLfHiA==} dependencies: '@motionone/types': 10.13.2 @@ -339,11 +383,11 @@ packages: tslib: 2.4.0 dev: false - /@motionone/types/10.13.2: + /@motionone/types@10.13.2: resolution: {integrity: sha512-yYV4q5v5F0iADhab4wHfqaRJnM/eVtQLjUPhyEcS72aUz/xyOzi09GzD/Gu+K506BDfqn5eULIilUI77QNaqhw==} dev: false - /@motionone/utils/10.13.2: + /@motionone/utils@10.13.2: resolution: {integrity: sha512-6Lw5bDA/w7lrPmT/jYWQ76lkHlHs9fl2NZpJ22cVy1kKDdEH+Cl1U6hMTpdphO6VQktQ6v2APngag91WBKLqlA==} dependencies: '@motionone/types': 10.13.2 @@ -351,21 +395,21 @@ packages: tslib: 2.4.0 dev: false - /@next/env/12.1.6: + /@next/env@12.1.6: resolution: {integrity: sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==} dev: false - /@next/env/12.2.2: + /@next/env@12.2.2: resolution: {integrity: sha512-BqDwE4gDl1F608TpnNxZqrCn6g48MBjvmWFEmeX5wEXDXh3IkAOw6ASKUgjT8H4OUePYFqghDFUss5ZhnbOUjw==} dev: false - /@next/eslint-plugin-next/12.2.2: + /@next/eslint-plugin-next@12.2.2: resolution: {integrity: sha512-XOi0WzJhGH3Lk51SkSu9eZxF+IY1ZZhWcJTIGBycAbWU877IQa6+6KxMATWCOs7c+bmp6Sd8KywXJaDRxzu0JA==} dependencies: glob: 7.1.7 dev: true - /@next/swc-android-arm-eabi/12.1.6: + /@next/swc-android-arm-eabi@12.1.6: resolution: {integrity: sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==} engines: {node: '>= 10'} cpu: [arm] @@ -374,7 +418,7 @@ packages: dev: false optional: true - /@next/swc-android-arm-eabi/12.2.2: + /@next/swc-android-arm-eabi@12.2.2: resolution: {integrity: sha512-VHjuCHeq9qCprUZbsRxxM/VqSW8MmsUtqB5nEpGEgUNnQi/BTm/2aK8tl7R4D0twGKRh6g1AAeFuWtXzk9Z/vQ==} engines: {node: '>= 10'} cpu: [arm] @@ -383,7 +427,7 @@ packages: dev: false optional: true - /@next/swc-android-arm64/12.1.6: + /@next/swc-android-arm64@12.1.6: resolution: {integrity: sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==} engines: {node: '>= 10'} cpu: [arm64] @@ -392,7 +436,7 @@ packages: dev: false optional: true - /@next/swc-android-arm64/12.2.2: + /@next/swc-android-arm64@12.2.2: resolution: {integrity: sha512-v5EYzXUOSv0r9mO/2PX6mOcF53k8ndlu9yeFHVAWW1Dhw2jaJcvTRcCAwYYN8Q3tDg0nH3NbEltJDLKmcJOuVA==} engines: {node: '>= 10'} cpu: [arm64] @@ -401,7 +445,7 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64/12.1.6: + /@next/swc-darwin-arm64@12.1.6: resolution: {integrity: sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==} engines: {node: '>= 10'} cpu: [arm64] @@ -410,7 +454,7 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64/12.2.2: + /@next/swc-darwin-arm64@12.2.2: resolution: {integrity: sha512-JCoGySHKGt+YBk7xRTFGx1QjrnCcwYxIo3yGepcOq64MoiocTM3yllQWeOAJU2/k9MH0+B5E9WUSme4rOCBbpA==} engines: {node: '>= 10'} cpu: [arm64] @@ -419,7 +463,7 @@ packages: dev: false optional: true - /@next/swc-darwin-x64/12.1.6: + /@next/swc-darwin-x64@12.1.6: resolution: {integrity: sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==} engines: {node: '>= 10'} cpu: [x64] @@ -428,7 +472,7 @@ packages: dev: false optional: true - /@next/swc-darwin-x64/12.2.2: + /@next/swc-darwin-x64@12.2.2: resolution: {integrity: sha512-dztDtvfkhUqiqpXvrWVccfGhLe44yQ5tQ7B4tBfnsOR6vxzI9DNPHTlEOgRN9qDqTAcFyPxvg86mn4l8bB9Jcw==} engines: {node: '>= 10'} cpu: [x64] @@ -437,7 +481,7 @@ packages: dev: false optional: true - /@next/swc-freebsd-x64/12.2.2: + /@next/swc-freebsd-x64@12.2.2: resolution: {integrity: sha512-JUnXB+2xfxqsAvhFLPJpU1NeyDsvJrKoOjpV7g3Dxbno2Riu4tDKn3kKF886yleAuD/1qNTUCpqubTvbbT2VoA==} engines: {node: '>= 10'} cpu: [x64] @@ -446,7 +490,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm-gnueabihf/12.1.6: + /@next/swc-linux-arm-gnueabihf@12.1.6: resolution: {integrity: sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==} engines: {node: '>= 10'} cpu: [arm] @@ -455,7 +499,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm-gnueabihf/12.2.2: + /@next/swc-linux-arm-gnueabihf@12.2.2: resolution: {integrity: sha512-XeYC/qqPLz58R4pjkb+x8sUUxuGLnx9QruC7/IGkK68yW4G17PHwKI/1njFYVfXTXUukpWjcfBuauWwxp9ke7Q==} engines: {node: '>= 10'} cpu: [arm] @@ -464,7 +508,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu/12.1.6: + /@next/swc-linux-arm64-gnu@12.1.6: resolution: {integrity: sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==} engines: {node: '>= 10'} cpu: [arm64] @@ -473,7 +517,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu/12.2.2: + /@next/swc-linux-arm64-gnu@12.2.2: resolution: {integrity: sha512-d6jT8xgfKYFkzR7J0OHo2D+kFvY/6W8qEo6/hmdrTt6AKAqxs//rbbcdoyn3YQq1x6FVUUd39zzpezZntg9Naw==} engines: {node: '>= 10'} cpu: [arm64] @@ -482,7 +526,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl/12.1.6: + /@next/swc-linux-arm64-musl@12.1.6: resolution: {integrity: sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==} engines: {node: '>= 10'} cpu: [arm64] @@ -491,7 +535,7 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl/12.2.2: + /@next/swc-linux-arm64-musl@12.2.2: resolution: {integrity: sha512-rIZRFxI9N/502auJT1i7coas0HTHUM+HaXMyJiCpnY8Rimbo0495ir24tzzHo3nQqJwcflcPTwEh/DV17sdv9A==} engines: {node: '>= 10'} cpu: [arm64] @@ -500,7 +544,7 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu/12.1.6: + /@next/swc-linux-x64-gnu@12.1.6: resolution: {integrity: sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==} engines: {node: '>= 10'} cpu: [x64] @@ -509,7 +553,7 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu/12.2.2: + /@next/swc-linux-x64-gnu@12.2.2: resolution: {integrity: sha512-ir1vNadlUDj7eQk15AvfhG5BjVizuCHks9uZwBfUgT5jyeDCeRvaDCo1+Q6+0CLOAnYDR/nqSCvBgzG2UdFh9A==} engines: {node: '>= 10'} cpu: [x64] @@ -518,7 +562,7 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl/12.1.6: + /@next/swc-linux-x64-musl@12.1.6: resolution: {integrity: sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==} engines: {node: '>= 10'} cpu: [x64] @@ -527,7 +571,7 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl/12.2.2: + /@next/swc-linux-x64-musl@12.2.2: resolution: {integrity: sha512-bte5n2GzLN3O8JdSFYWZzMgEgDHZmRz5wiispiiDssj4ik3l8E7wq/czNi8RmIF+ioj2sYVokUNa/ekLzrESWw==} engines: {node: '>= 10'} cpu: [x64] @@ -536,7 +580,7 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc/12.1.6: + /@next/swc-win32-arm64-msvc@12.1.6: resolution: {integrity: sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==} engines: {node: '>= 10'} cpu: [arm64] @@ -545,7 +589,7 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc/12.2.2: + /@next/swc-win32-arm64-msvc@12.2.2: resolution: {integrity: sha512-ZUGCmcDmdPVSAlwJ/aD+1F9lYW8vttseiv4n2+VCDv5JloxiX9aY32kYZaJJO7hmTLNrprvXkb4OvNuHdN22Jg==} engines: {node: '>= 10'} cpu: [arm64] @@ -554,7 +598,7 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc/12.1.6: + /@next/swc-win32-ia32-msvc@12.1.6: resolution: {integrity: sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==} engines: {node: '>= 10'} cpu: [ia32] @@ -563,7 +607,7 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc/12.2.2: + /@next/swc-win32-ia32-msvc@12.2.2: resolution: {integrity: sha512-v7ykeEDbr9eXiblGSZiEYYkWoig6sRhAbLKHUHQtk8vEWWVEqeXFcxmw6LRrKu5rCN1DY357UlYWToCGPQPCRA==} engines: {node: '>= 10'} cpu: [ia32] @@ -572,7 +616,7 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc/12.1.6: + /@next/swc-win32-x64-msvc@12.1.6: resolution: {integrity: sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==} engines: {node: '>= 10'} cpu: [x64] @@ -581,7 +625,7 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc/12.2.2: + /@next/swc-win32-x64-msvc@12.2.2: resolution: {integrity: sha512-2D2iinWUL6xx8D9LYVZ5qi7FP6uLAoWymt8m8aaG2Ld/Ka8/k723fJfiklfuAcwOxfufPJI+nRbT5VcgHGzHAQ==} engines: {node: '>= 10'} cpu: [x64] @@ -590,7 +634,7 @@ packages: dev: false optional: true - /@nodelib/fs.scandir/2.1.5: + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -598,12 +642,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.8: + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -611,45 +655,44 @@ packages: fastq: 1.13.0 dev: true - /@playwright/test/1.24.1: - resolution: {integrity: sha512-VJ9qekMis7Oze2Q/Vb+w1g2aPaJFRdl5vhTS6h82kG89Jb8trlU2WHY7oYzNRjvFPoVUMcWXiblH2bWcbEax/A==} - engines: {node: '>=14'} + /@playwright/test@1.41.1: + resolution: {integrity: sha512-9g8EWTjiQ9yFBXc6HjCWe41msLpxEX0KhmfmPl9RPLJdfzL4F0lg2BdJ91O9azFdl11y1pmpwdjBiSxvqc+btw==} + engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 18.6.5 - playwright-core: 1.24.1 + playwright: 1.41.1 dev: true - /@radix-ui/popper/0.1.0: + /@radix-ui/popper@0.1.0: resolution: {integrity: sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==} dependencies: '@babel/runtime': 7.18.9 csstype: 3.1.0 dev: false - /@radix-ui/primitive/0.1.0: + /@radix-ui/primitive@0.1.0: resolution: {integrity: sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==} dependencies: '@babel/runtime': 7.18.9 dev: false - /@radix-ui/primitive/1.0.0: + /@radix-ui/primitive@1.0.0: resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} dependencies: '@babel/runtime': 7.18.9 dev: false - /@radix-ui/react-arrow/0.1.4_react@18.2.0: + /@radix-ui/react-arrow@0.1.4(react@18.2.0): resolution: {integrity: sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-primitive': 0.1.4_react@18.2.0 + '@radix-ui/react-primitive': 0.1.4(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-compose-refs/0.1.0_react@18.2.0: + /@radix-ui/react-compose-refs@0.1.0(react@18.2.0): resolution: {integrity: sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==} peerDependencies: react: ^16.8 || ^17.0 @@ -658,15 +701,16 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-compose-refs/1.0.0: + /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 + react: 18.2.0 dev: false - /@radix-ui/react-context/0.1.1_react@18.2.0: + /@radix-ui/react-context@0.1.1(react@18.2.0): resolution: {integrity: sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==} peerDependencies: react: ^16.8 || ^17.0 @@ -675,15 +719,16 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-context/1.0.0: + /@radix-ui/react-context@1.0.0(react@18.2.0): resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 + react: 18.2.0 dev: false - /@radix-ui/react-dialog/1.0.0_@types+react@18.0.15: + /@radix-ui/react-dialog@1.0.0(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -691,39 +736,41 @@ packages: dependencies: '@babel/runtime': 7.18.9 '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0 - '@radix-ui/react-context': 1.0.0 - '@radix-ui/react-dismissable-layer': 1.0.0 - '@radix-ui/react-focus-guards': 1.0.0 - '@radix-ui/react-focus-scope': 1.0.0 - '@radix-ui/react-id': 1.0.0 - '@radix-ui/react-portal': 1.0.0 - '@radix-ui/react-presence': 1.0.0 - '@radix-ui/react-primitive': 1.0.0 - '@radix-ui/react-slot': 1.0.0 - '@radix-ui/react-use-controllable-state': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-context': 1.0.0(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.0(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) aria-hidden: 1.1.3 - react-remove-scroll: 2.5.4_@types+react@18.0.15 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.4(@types/react@18.0.15)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-dismissable-layer/0.1.5_react@18.2.0: + /@radix-ui/react-dismissable-layer@0.1.5(react@18.2.0): resolution: {integrity: sha512-J+fYWijkX4M4QKwf9dtu1oC0U6e6CEl8WhBp3Ad23yz2Hia0XCo6Pk/mp5CAFy4QBtQedTSkhW05AdtSOEoajQ==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 '@radix-ui/primitive': 0.1.0 - '@radix-ui/react-compose-refs': 0.1.0_react@18.2.0 - '@radix-ui/react-primitive': 0.1.4_react@18.2.0 - '@radix-ui/react-use-body-pointer-events': 0.1.1_react@18.2.0 - '@radix-ui/react-use-callback-ref': 0.1.0_react@18.2.0 - '@radix-ui/react-use-escape-keydown': 0.1.0_react@18.2.0 + '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) + '@radix-ui/react-primitive': 0.1.4(react@18.2.0) + '@radix-ui/react-use-body-pointer-events': 0.1.1(react@18.2.0) + '@radix-ui/react-use-callback-ref': 0.1.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-dismissable-layer/1.0.0: + /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -731,13 +778,15 @@ packages: dependencies: '@babel/runtime': 7.18.9 '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0 - '@radix-ui/react-primitive': 1.0.0 - '@radix-ui/react-use-callback-ref': 1.0.0 - '@radix-ui/react-use-escape-keydown': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-focus-guards/0.1.0_react@18.2.0: + /@radix-ui/react-focus-guards@0.1.0(react@18.2.0): resolution: {integrity: sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==} peerDependencies: react: ^16.8 || ^17.0 @@ -746,58 +795,62 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-focus-guards/1.0.0: + /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 + react: 18.2.0 dev: false - /@radix-ui/react-focus-scope/0.1.4_react@18.2.0: + /@radix-ui/react-focus-scope@0.1.4(react@18.2.0): resolution: {integrity: sha512-fbA4ES3H4Wkxp+OeLhvN6SwL7mXNn/aBtUf7DRYxY9+Akrf7dRxl2ck4lgcpPsSg3zSDsEwLcY+h5cmj5yvlug==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 0.1.0_react@18.2.0 - '@radix-ui/react-primitive': 0.1.4_react@18.2.0 - '@radix-ui/react-use-callback-ref': 0.1.0_react@18.2.0 + '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) + '@radix-ui/react-primitive': 0.1.4(react@18.2.0) + '@radix-ui/react-use-callback-ref': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-focus-scope/1.0.0: + /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 1.0.0 - '@radix-ui/react-primitive': 1.0.0 - '@radix-ui/react-use-callback-ref': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-id/0.1.5_react@18.2.0: + /@radix-ui/react-id@0.1.5(react@18.2.0): resolution: {integrity: sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-layout-effect': 0.1.0_react@18.2.0 + '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-id/1.0.0: + /@radix-ui/react-id@1.0.0(react@18.2.0): resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-layout-effect': 1.0.0 + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 dev: false - /@radix-ui/react-popover/0.1.6_bb2bxwco6ptpubzwpazr52qf6i: + /@radix-ui/react-popover@0.1.6(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zQzgUqW4RQDb0ItAL1xNW4K4olUrkfV3jeEPs9rG+nsDQurO+W9TT+YZ9H1mmgAJqlthyv1sBRZGdBm4YjtD6Q==} peerDependencies: react: ^16.8 || ^17.0 @@ -805,137 +858,144 @@ packages: dependencies: '@babel/runtime': 7.18.9 '@radix-ui/primitive': 0.1.0 - '@radix-ui/react-compose-refs': 0.1.0_react@18.2.0 - '@radix-ui/react-context': 0.1.1_react@18.2.0 - '@radix-ui/react-dismissable-layer': 0.1.5_react@18.2.0 - '@radix-ui/react-focus-guards': 0.1.0_react@18.2.0 - '@radix-ui/react-focus-scope': 0.1.4_react@18.2.0 - '@radix-ui/react-id': 0.1.5_react@18.2.0 - '@radix-ui/react-popper': 0.1.4_react@18.2.0 - '@radix-ui/react-portal': 0.1.4_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-presence': 0.1.2_react@18.2.0 - '@radix-ui/react-primitive': 0.1.4_react@18.2.0 - '@radix-ui/react-use-controllable-state': 0.1.0_react@18.2.0 + '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) + '@radix-ui/react-context': 0.1.1(react@18.2.0) + '@radix-ui/react-dismissable-layer': 0.1.5(react@18.2.0) + '@radix-ui/react-focus-guards': 0.1.0(react@18.2.0) + '@radix-ui/react-focus-scope': 0.1.4(react@18.2.0) + '@radix-ui/react-id': 0.1.5(react@18.2.0) + '@radix-ui/react-popper': 0.1.4(react@18.2.0) + '@radix-ui/react-portal': 0.1.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 0.1.2(react@18.2.0) + '@radix-ui/react-primitive': 0.1.4(react@18.2.0) + '@radix-ui/react-use-controllable-state': 0.1.0(react@18.2.0) aria-hidden: 1.1.3 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-remove-scroll: 2.5.5_3hx2ussxxho4jajbwrd6gq34qe + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.0.15)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-popper/0.1.4_react@18.2.0: + /@radix-ui/react-popper@0.1.4(react@18.2.0): resolution: {integrity: sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 '@radix-ui/popper': 0.1.0 - '@radix-ui/react-arrow': 0.1.4_react@18.2.0 - '@radix-ui/react-compose-refs': 0.1.0_react@18.2.0 - '@radix-ui/react-context': 0.1.1_react@18.2.0 - '@radix-ui/react-primitive': 0.1.4_react@18.2.0 - '@radix-ui/react-use-rect': 0.1.1_react@18.2.0 - '@radix-ui/react-use-size': 0.1.1_react@18.2.0 + '@radix-ui/react-arrow': 0.1.4(react@18.2.0) + '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) + '@radix-ui/react-context': 0.1.1(react@18.2.0) + '@radix-ui/react-primitive': 0.1.4(react@18.2.0) + '@radix-ui/react-use-rect': 0.1.1(react@18.2.0) + '@radix-ui/react-use-size': 0.1.1(react@18.2.0) '@radix-ui/rect': 0.1.1 react: 18.2.0 dev: false - /@radix-ui/react-portal/0.1.4_biqbaboplfbrettd7655fr4n2y: + /@radix-ui/react-portal@0.1.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==} peerDependencies: react: ^16.8 || ^17.0 react-dom: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-primitive': 0.1.4_react@18.2.0 - '@radix-ui/react-use-layout-effect': 0.1.0_react@18.2.0 + '@radix-ui/react-primitive': 0.1.4(react@18.2.0) + '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-portal/1.0.0: + /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-primitive': 1.0.0 + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-presence/0.1.2_react@18.2.0: + /@radix-ui/react-presence@0.1.2(react@18.2.0): resolution: {integrity: sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==} peerDependencies: react: '>=16.8' dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 0.1.0_react@18.2.0 - '@radix-ui/react-use-layout-effect': 0.1.0_react@18.2.0 + '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-presence/1.0.0: + /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 1.0.0 - '@radix-ui/react-use-layout-effect': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-primitive/0.1.4_react@18.2.0: + /@radix-ui/react-primitive@0.1.4(react@18.2.0): resolution: {integrity: sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-slot': 0.1.2_react@18.2.0 + '@radix-ui/react-slot': 0.1.2(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-primitive/1.0.0: + /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-slot': 1.0.0 + '@radix-ui/react-slot': 1.0.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-slot/0.1.2_react@18.2.0: + /@radix-ui/react-slot@0.1.2(react@18.2.0): resolution: {integrity: sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 0.1.0_react@18.2.0 + '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-slot/1.0.0: + /@radix-ui/react-slot@1.0.0(react@18.2.0): resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + react: 18.2.0 dev: false - /@radix-ui/react-use-body-pointer-events/0.1.1_react@18.2.0: + /@radix-ui/react-use-body-pointer-events@0.1.1(react@18.2.0): resolution: {integrity: sha512-R8leV2AWmJokTmERM8cMXFHWSiv/fzOLhG/JLmRBhLTAzOj37EQizssq4oW0Z29VcZy2tODMi9Pk/htxwb+xpA==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-layout-effect': 0.1.0_react@18.2.0 + '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-use-callback-ref/0.1.0_react@18.2.0: + /@radix-ui/react-use-callback-ref@0.1.0(react@18.2.0): resolution: {integrity: sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==} peerDependencies: react: ^16.8 || ^17.0 @@ -944,53 +1004,56 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-callback-ref/1.0.0: + /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 + react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state/0.1.0_react@18.2.0: + /@radix-ui/react-use-controllable-state@0.1.0(react@18.2.0): resolution: {integrity: sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-callback-ref': 0.1.0_react@18.2.0 + '@radix-ui/react-use-callback-ref': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state/1.0.0: + /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-callback-ref': 1.0.0 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown/0.1.0_react@18.2.0: + /@radix-ui/react-use-escape-keydown@0.1.0(react@18.2.0): resolution: {integrity: sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==} peerDependencies: react: ^16.8 || ^17.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-callback-ref': 0.1.0_react@18.2.0 + '@radix-ui/react-use-callback-ref': 0.1.0(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown/1.0.0: + /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 - '@radix-ui/react-use-callback-ref': 1.0.0 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect/0.1.0_react@18.2.0: + /@radix-ui/react-use-layout-effect@0.1.0(react@18.2.0): resolution: {integrity: sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==} peerDependencies: react: ^16.8 || ^17.0 @@ -999,15 +1062,16 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect/1.0.0: + /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.18.9 + react: 18.2.0 dev: false - /@radix-ui/react-use-rect/0.1.1_react@18.2.0: + /@radix-ui/react-use-rect@0.1.1(react@18.2.0): resolution: {integrity: sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==} peerDependencies: react: ^16.8 || ^17.0 @@ -1017,7 +1081,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-size/0.1.1_react@18.2.0: + /@radix-ui/react-use-size@0.1.1(react@18.2.0): resolution: {integrity: sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==} peerDependencies: react: ^16.8 || ^17.0 @@ -1026,52 +1090,48 @@ packages: react: 18.2.0 dev: false - /@radix-ui/rect/0.1.1: + /@radix-ui/rect@0.1.1: resolution: {integrity: sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==} dependencies: '@babel/runtime': 7.18.9 dev: false - /@rushstack/eslint-patch/1.1.4: + /@rushstack/eslint-patch@1.1.4: resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==} dev: true - /@swc/helpers/0.4.2: + /@swc/helpers@0.4.2: resolution: {integrity: sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==} dependencies: tslib: 2.4.0 dev: false - /@types/json5/0.0.29: + /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/node/18.0.4: + /@types/node@18.0.4: resolution: {integrity: sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA==} - /@types/node/18.6.5: - resolution: {integrity: sha512-Xjt5ZGUa5WusGZJ4WJPbOT8QOqp6nDynVFRKcUt32bOgvXEoc6o085WNkYTMO7ifAj2isEfQQ2cseE+wT6jsRw==} - dev: true - - /@types/prop-types/15.7.5: + /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom/18.0.6: + /@types/react-dom@18.0.6: resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==} dependencies: '@types/react': 18.0.15 - /@types/react/18.0.15: + /@types/react@18.0.15: resolution: {integrity: sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 csstype: 3.1.0 - /@types/scheduler/0.16.2: + /@types/scheduler@0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - /@typescript-eslint/parser/5.33.0_qugx7qdu5zevzvxaiqyxfiwquq: + /@typescript-eslint/parser@5.33.0(eslint@8.21.0)(typescript@4.7.4): resolution: {integrity: sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1083,7 +1143,7 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.33.0 '@typescript-eslint/types': 5.33.0 - '@typescript-eslint/typescript-estree': 5.33.0_typescript@4.7.4 + '@typescript-eslint/typescript-estree': 5.33.0(typescript@4.7.4) debug: 4.3.4 eslint: 8.21.0 typescript: 4.7.4 @@ -1091,7 +1151,7 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.33.0: + /@typescript-eslint/scope-manager@5.33.0: resolution: {integrity: sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -1099,12 +1159,12 @@ packages: '@typescript-eslint/visitor-keys': 5.33.0 dev: true - /@typescript-eslint/types/5.33.0: + /@typescript-eslint/types@5.33.0: resolution: {integrity: sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.33.0_typescript@4.7.4: + /@typescript-eslint/typescript-estree@5.33.0(typescript@4.7.4): resolution: {integrity: sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1119,13 +1179,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.7.4 + tsutils: 3.21.0(typescript@4.7.4) typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/visitor-keys/5.33.0: + /@typescript-eslint/visitor-keys@5.33.0: resolution: {integrity: sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -1133,7 +1193,7 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: + /acorn-jsx@5.3.2(acorn@8.8.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1141,13 +1201,13 @@ packages: acorn: 8.8.0 dev: true - /acorn/8.8.0: + /acorn@8.8.0: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /aggregate-error/3.1.0: + /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} dependencies: @@ -1155,7 +1215,7 @@ packages: indent-string: 4.0.0 dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -1164,65 +1224,65 @@ packages: uri-js: 4.4.1 dev: true - /ansi-escapes/4.3.2: + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true - /ansi-regex/5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true - /ansi-regex/6.0.1: + /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true - /ansi-styles/3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: true - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true - /ansi-styles/6.1.0: + /ansi-styles@6.1.0: resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} engines: {node: '>=12'} dev: true - /any-promise/1.3.0: + /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true - /anymatch/3.1.2: + /anymatch@3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-hidden/1.1.3: + /aria-hidden@1.1.3: resolution: {integrity: sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==} engines: {node: '>=8.5.0'} dependencies: tslib: 1.14.1 dev: false - /aria-query/4.2.2: + /aria-query@4.2.2: resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} engines: {node: '>=6.0'} dependencies: @@ -1230,7 +1290,7 @@ packages: '@babel/runtime-corejs3': 7.18.9 dev: true - /array-includes/3.1.5: + /array-includes@3.1.5: resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} engines: {node: '>= 0.4'} dependencies: @@ -1241,12 +1301,12 @@ packages: is-string: 1.0.7 dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.flat/1.3.0: + /array.prototype.flat@1.3.0: resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} engines: {node: '>= 0.4'} dependencies: @@ -1256,7 +1316,7 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap/1.3.0: + /array.prototype.flatmap@1.3.0: resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} engines: {node: '>= 0.4'} dependencies: @@ -1266,25 +1326,25 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /ast-types-flow/0.0.7: + /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true - /astral-regex/2.0.0: + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true - /axe-core/4.4.3: + /axe-core@4.4.3: resolution: {integrity: sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==} engines: {node: '>=4'} dev: true - /axobject-query/2.2.0: + /axobject-query@2.2.0: resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} dev: true - /babel-eslint/10.1.0_eslint@8.21.0: + /babel-eslint@10.1.0(eslint@8.21.0): resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} engines: {node: '>=6'} deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. @@ -1302,28 +1362,28 @@ packages: - supports-color dev: true - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /binary-extensions/2.2.0: + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - /bundle-require/3.0.4_esbuild@0.14.54: + /bundle-require@3.0.4(esbuild@0.14.54): resolution: {integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: @@ -1333,28 +1393,28 @@ packages: load-tsconfig: 0.2.3 dev: true - /cac/6.7.12: + /cac@6.7.12: resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} engines: {node: '>=8'} dev: true - /call-bind/1.0.2: + /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.2 dev: true - /callsites/3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /caniuse-lite/1.0.30001374: + /caniuse-lite@1.0.30001374: resolution: {integrity: sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==} dev: false - /chalk/2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: @@ -1363,7 +1423,7 @@ packages: supports-color: 5.5.0 dev: true - /chalk/4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: @@ -1371,7 +1431,7 @@ packages: supports-color: 7.2.0 dev: true - /chokidar/3.5.3: + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: @@ -1383,21 +1443,21 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /clean-stack/2.2.0: + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} dev: true - /cli-cursor/3.1.0: + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 dev: true - /cli-truncate/2.1.0: + /cli-truncate@2.1.0: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} dependencies: @@ -1405,7 +1465,7 @@ packages: string-width: 4.2.3 dev: true - /cli-truncate/3.1.0: + /cli-truncate@3.1.0: resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -1413,57 +1473,57 @@ packages: string-width: 5.1.2 dev: true - /color-convert/1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 dev: true - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true - /color-name/1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /colorette/2.0.19: + /colorette@2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true - /commander/4.1.1: + /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} dev: true - /commander/9.4.0: + /commander@9.4.0: resolution: {integrity: sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==} engines: {node: ^12.20.0 || >=14} dev: true - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true - /copy-to-clipboard/3.3.2: + /copy-to-clipboard@3.3.2: resolution: {integrity: sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==} dependencies: toggle-selection: 1.0.6 dev: false - /core-js-pure/3.24.1: + /core-js-pure@3.24.1: resolution: {integrity: sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==} requiresBuild: true dev: true - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -1472,14 +1532,14 @@ packages: which: 2.0.2 dev: true - /csstype/3.1.0: + /csstype@3.1.0: resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} - /damerau-levenshtein/1.0.8: + /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true - /debug/2.6.9: + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' @@ -1490,7 +1550,7 @@ packages: ms: 2.0.0 dev: true - /debug/3.2.7: + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' @@ -1501,7 +1561,7 @@ packages: ms: 2.1.3 dev: true - /debug/4.3.4: + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -1513,11 +1573,11 @@ packages: ms: 2.1.2 dev: true - /deep-is/0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /define-properties/1.1.4: + /define-properties@1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} dependencies: @@ -1525,44 +1585,44 @@ packages: object-keys: 1.1.1 dev: true - /detect-node-es/1.1.0: + /detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: false - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /doctrine/2.1.0: + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 dev: true - /doctrine/3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /eastasianwidth/0.2.0: + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /emoji-regex/9.2.2: + /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /es-abstract/1.20.1: + /es-abstract@1.20.1: resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} engines: {node: '>= 0.4'} dependencies: @@ -1591,13 +1651,13 @@ packages: unbox-primitive: 1.0.2 dev: true - /es-shim-unscopables/1.0.0: + /es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.3 dev: true - /es-to-primitive/1.2.1: + /es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: @@ -1606,7 +1666,7 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.54: + /esbuild-android-64@0.14.54: resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} engines: {node: '>=12'} cpu: [x64] @@ -1615,7 +1675,7 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.54: + /esbuild-android-arm64@0.14.54: resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} engines: {node: '>=12'} cpu: [arm64] @@ -1624,7 +1684,7 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.54: + /esbuild-darwin-64@0.14.54: resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} engines: {node: '>=12'} cpu: [x64] @@ -1633,7 +1693,7 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.54: + /esbuild-darwin-arm64@0.14.54: resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} engines: {node: '>=12'} cpu: [arm64] @@ -1642,7 +1702,7 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.54: + /esbuild-freebsd-64@0.14.54: resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} engines: {node: '>=12'} cpu: [x64] @@ -1651,7 +1711,7 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.54: + /esbuild-freebsd-arm64@0.14.54: resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} engines: {node: '>=12'} cpu: [arm64] @@ -1660,7 +1720,7 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.54: + /esbuild-linux-32@0.14.54: resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} engines: {node: '>=12'} cpu: [ia32] @@ -1669,7 +1729,7 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.54: + /esbuild-linux-64@0.14.54: resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} engines: {node: '>=12'} cpu: [x64] @@ -1678,25 +1738,25 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + /esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-arm64/0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + /esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /esbuild-linux-mips64le/0.14.54: + /esbuild-linux-mips64le@0.14.54: resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} engines: {node: '>=12'} cpu: [mips64el] @@ -1705,7 +1765,7 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.54: + /esbuild-linux-ppc64le@0.14.54: resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} engines: {node: '>=12'} cpu: [ppc64] @@ -1714,7 +1774,7 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.54: + /esbuild-linux-riscv64@0.14.54: resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} engines: {node: '>=12'} cpu: [riscv64] @@ -1723,7 +1783,7 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.54: + /esbuild-linux-s390x@0.14.54: resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} engines: {node: '>=12'} cpu: [s390x] @@ -1732,7 +1792,7 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.54: + /esbuild-netbsd-64@0.14.54: resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} engines: {node: '>=12'} cpu: [x64] @@ -1741,7 +1801,7 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.54: + /esbuild-openbsd-64@0.14.54: resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} engines: {node: '>=12'} cpu: [x64] @@ -1750,7 +1810,7 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.54: + /esbuild-sunos-64@0.14.54: resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} engines: {node: '>=12'} cpu: [x64] @@ -1759,7 +1819,7 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.54: + /esbuild-windows-32@0.14.54: resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} engines: {node: '>=12'} cpu: [ia32] @@ -1768,7 +1828,7 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.54: + /esbuild-windows-64@0.14.54: resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} engines: {node: '>=12'} cpu: [x64] @@ -1777,7 +1837,7 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.54: + /esbuild-windows-arm64@0.14.54: resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} engines: {node: '>=12'} cpu: [arm64] @@ -1786,7 +1846,7 @@ packages: dev: true optional: true - /esbuild/0.14.54: + /esbuild@0.14.54: resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} engines: {node: '>=12'} hasBin: true @@ -1815,17 +1875,17 @@ packages: esbuild-windows-arm64: 0.14.54 dev: true - /escape-string-regexp/1.0.5: + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: true - /escape-string-regexp/4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /eslint-config-next/12.2.2_qugx7qdu5zevzvxaiqyxfiwquq: + /eslint-config-next@12.2.2(eslint@8.21.0)(typescript@4.7.4): resolution: {integrity: sha512-oJhWBLC4wDYYUFv/5APbjHUFd0QRFCojMdj/QnMoOEktmeTvwnnoA8F8uaXs0fQgsaTK0tbUxBRv9/Y4/rpxOA==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -1836,21 +1896,21 @@ packages: dependencies: '@next/eslint-plugin-next': 12.2.2 '@rushstack/eslint-patch': 1.1.4 - '@typescript-eslint/parser': 5.33.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/parser': 5.33.0(eslint@8.21.0)(typescript@4.7.4) eslint: 8.21.0 eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1_jatgrcxl4x7ywe7ak6cnjca2ae - eslint-plugin-import: 2.26.0_kaovueczjnxqno6jq2wxve7si4 - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.21.0 - eslint-plugin-react: 7.30.1_eslint@8.21.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.21.0 + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.21.0) + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.33.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.21.0) + eslint-plugin-jsx-a11y: 6.6.1(eslint@8.21.0) + eslint-plugin-react: 7.30.1(eslint@8.21.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.21.0) typescript: 4.7.4 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color dev: true - /eslint-config-prettier/8.5.0_eslint@8.21.0: + /eslint-config-prettier@8.5.0(eslint@8.21.0): resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: @@ -1859,7 +1919,7 @@ packages: eslint: 8.21.0 dev: true - /eslint-import-resolver-node/0.3.6: + /eslint-import-resolver-node@0.3.6: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: debug: 3.2.7 @@ -1868,7 +1928,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/2.7.1_jatgrcxl4x7ywe7ak6cnjca2ae: + /eslint-import-resolver-typescript@2.7.1(eslint-plugin-import@2.26.0)(eslint@8.21.0): resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} engines: {node: '>=4'} peerDependencies: @@ -1877,7 +1937,7 @@ packages: dependencies: debug: 4.3.4 eslint: 8.21.0 - eslint-plugin-import: 2.26.0_kaovueczjnxqno6jq2wxve7si4 + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.33.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.21.0) glob: 7.2.3 is-glob: 4.0.3 resolve: 1.22.1 @@ -1886,7 +1946,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3_rtbhofbsy3gzv73dx4xodd3q4u: + /eslint-module-utils@2.7.3(@typescript-eslint/parser@5.33.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1): resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: @@ -1904,16 +1964,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.33.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/parser': 5.33.0(eslint@8.21.0)(typescript@4.7.4) debug: 3.2.7 eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 2.7.1_jatgrcxl4x7ywe7ak6cnjca2ae + eslint-import-resolver-typescript: 2.7.1(eslint-plugin-import@2.26.0)(eslint@8.21.0) find-up: 2.1.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.26.0_kaovueczjnxqno6jq2wxve7si4: + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.33.0)(eslint-import-resolver-typescript@2.7.1)(eslint@8.21.0): resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -1923,14 +1983,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.33.0_qugx7qdu5zevzvxaiqyxfiwquq + '@typescript-eslint/parser': 5.33.0(eslint@8.21.0)(typescript@4.7.4) array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.21.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3_rtbhofbsy3gzv73dx4xodd3q4u + eslint-module-utils: 2.7.3(@typescript-eslint/parser@5.33.0)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@2.7.1) has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -1944,7 +2004,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y/6.6.1_eslint@8.21.0: + /eslint-plugin-jsx-a11y@6.6.1(eslint@8.21.0): resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==} engines: {node: '>=4.0'} peerDependencies: @@ -1966,7 +2026,7 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-prettier/4.2.1_xjqqwxedbbipvi5zccjm3mixku: + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.5.0)(eslint@8.21.0)(prettier@3.2.4): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1978,11 +2038,12 @@ packages: optional: true dependencies: eslint: 8.21.0 - eslint-config-prettier: 8.5.0_eslint@8.21.0 + eslint-config-prettier: 8.5.0(eslint@8.21.0) + prettier: 3.2.4 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.21.0: + /eslint-plugin-react-hooks@4.6.0(eslint@8.21.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: @@ -1991,7 +2052,7 @@ packages: eslint: 8.21.0 dev: true - /eslint-plugin-react/7.30.1_eslint@8.21.0: + /eslint-plugin-react@7.30.1(eslint@8.21.0): resolution: {integrity: sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==} engines: {node: '>=4'} peerDependencies: @@ -2014,7 +2075,7 @@ packages: string.prototype.matchall: 4.0.7 dev: true - /eslint-scope/7.1.1: + /eslint-scope@7.1.1: resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -2022,7 +2083,7 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.21.0: + /eslint-utils@3.0.0(eslint@8.21.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: @@ -2032,22 +2093,22 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /eslint-visitor-keys/1.3.0: + /eslint-visitor-keys@1.3.0: resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} engines: {node: '>=4'} dev: true - /eslint-visitor-keys/2.1.0: + /eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} dev: true - /eslint-visitor-keys/3.3.0: + /eslint-visitor-keys@3.3.0: resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.21.0: + /eslint@8.21.0: resolution: {integrity: sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true @@ -2062,7 +2123,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.21.0 + eslint-utils: 3.0.0(eslint@8.21.0) eslint-visitor-keys: 3.3.0 espree: 9.3.3 esquery: 1.4.0 @@ -2095,40 +2156,40 @@ packages: - supports-color dev: true - /espree/9.3.3: + /espree@9.3.3: resolution: {integrity: sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.8.0 - acorn-jsx: 5.3.2_acorn@8.8.0 + acorn-jsx: 5.3.2(acorn@8.8.0) eslint-visitor-keys: 3.3.0 dev: true - /esquery/1.4.0: + /esquery@1.4.0: resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse/5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /esutils/2.0.3: + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /execa/5.1.1: + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: @@ -2143,7 +2204,7 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa/6.1.0: + /execa@6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -2158,15 +2219,15 @@ packages: strip-final-newline: 3.0.0 dev: true - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-diff/1.2.0: + /fast-diff@1.2.0: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true - /fast-glob/3.2.11: + /fast-glob@3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} engines: {node: '>=8.6.0'} dependencies: @@ -2177,41 +2238,41 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq/1.13.0: + /fastq@1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 dev: true - /file-entry-cache/6.0.1: + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - /find-up/2.1.0: + /find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} dependencies: locate-path: 2.0.0 dev: true - /find-up/5.0.0: + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -2219,7 +2280,7 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: + /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -2227,11 +2288,11 @@ packages: rimraf: 3.0.2 dev: true - /flatted/3.2.6: + /flatted@3.2.6: resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} dev: true - /framer-motion/6.5.1_biqbaboplfbrettd7655fr4n2y: + /framer-motion@6.5.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} peerDependencies: react: '>=16.8 || ^17.0.0 || ^18.0.0' @@ -2242,35 +2303,43 @@ packages: hey-listen: 1.0.8 popmotion: 11.0.3 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) style-value-types: 5.0.0 tslib: 2.4.0 optionalDependencies: '@emotion/is-prop-valid': 0.8.8 dev: false - /framesync/6.0.1: + /framesync@6.0.1: resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} dependencies: tslib: 2.4.0 dev: false - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents/2.3.2: + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true + optional: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true optional: true - /function-bind/1.1.1: + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true - /function.prototype.name/1.1.5: + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} dependencies: @@ -2280,15 +2349,15 @@ packages: functions-have-names: 1.2.3 dev: true - /functional-red-black-tree/1.0.1: + /functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true - /functions-have-names/1.2.3: + /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true - /get-intrinsic/1.1.2: + /get-intrinsic@1.1.2: resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} dependencies: function-bind: 1.1.1 @@ -2296,17 +2365,17 @@ packages: has-symbols: 1.0.3 dev: true - /get-nonce/1.0.1: + /get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} dev: false - /get-stream/6.0.1: + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /get-symbol-description/1.0.0: + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: @@ -2314,20 +2383,20 @@ packages: get-intrinsic: 1.1.2 dev: true - /glob-parent/5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - /glob-parent/6.0.2: + /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true - /glob/7.1.6: + /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: fs.realpath: 1.0.0 @@ -2338,7 +2407,7 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/7.1.7: + /glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: fs.realpath: 1.0.0 @@ -2349,7 +2418,7 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/7.2.3: + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 @@ -2360,19 +2429,19 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/11.12.0: + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} dev: true - /globals/13.17.0: + /globals@13.17.0: resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.1.0: + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: @@ -2384,79 +2453,79 @@ packages: slash: 3.0.0 dev: true - /grapheme-splitter/1.0.4: + /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /has-bigints/1.0.2: + /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true - /has-flag/3.0.0: + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} dev: true - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} dev: true - /has-property-descriptors/1.0.0: + /has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.1.2 dev: true - /has-symbols/1.0.3: + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true - /has-tostringtag/1.0.0: + /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true - /has/1.0.3: + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 dev: true - /hey-listen/1.0.8: + /hey-listen@1.0.8: resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} dev: false - /human-signals/2.1.0: + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /human-signals/3.0.1: + /human-signals@3.0.1: resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} engines: {node: '>=12.20.0'} dev: true - /husky/8.0.1: + /husky@8.0.1: resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} engines: {node: '>=14'} hasBin: true dev: true - /ignore/5.2.0: + /ignore@5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} dev: true - /immutable/4.1.0: + /immutable@4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} dev: false - /import-fresh/3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: @@ -2464,28 +2533,28 @@ packages: resolve-from: 4.0.0 dev: true - /imurmurhash/0.1.4: + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /indent-string/4.0.0: + /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} dev: true - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /internal-slot/1.0.3: + /internal-slot@1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: @@ -2494,25 +2563,25 @@ packages: side-channel: 1.0.4 dev: true - /invariant/2.2.4: + /invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: loose-envify: 1.4.0 dev: false - /is-bigint/1.0.4: + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 dev: true - /is-binary-path/2.1.0: + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - /is-boolean-object/1.1.2: + /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: @@ -2520,61 +2589,61 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-callable/1.2.4: + /is-callable@1.2.4: resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} engines: {node: '>= 0.4'} dev: true - /is-core-module/2.10.0: + /is-core-module@2.10.0: resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 dev: true - /is-date-object/1.0.5: + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-extglob/2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /is-fullwidth-code-point/4.0.0: + /is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} dev: true - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - /is-negative-zero/2.0.2: + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true - /is-number-object/1.0.7: + /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-regex/1.1.4: + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: @@ -2582,83 +2651,83 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-shared-array-buffer/1.0.2: + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 dev: true - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-stream/3.0.0: + /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /is-string/1.0.7: + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-symbol/1.0.4: + /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true - /is-weakref/1.0.2: + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /joycon/3.1.1: + /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} dev: true - /js-tokens/4.0.0: + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true - /jsesc/2.5.2: + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true - /json-schema-traverse/0.4.1: + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json5/1.0.1: + /json5@1.0.1: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: minimist: 1.2.6 dev: true - /jsx-ast-utils/3.3.3: + /jsx-ast-utils@3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} dependencies: @@ -2666,17 +2735,17 @@ packages: object.assign: 4.1.3 dev: true - /language-subtag-registry/0.3.22: + /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} dev: true - /language-tags/1.0.5: + /language-tags@1.0.5: resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: language-subtag-registry: 0.3.22 dev: true - /levn/0.4.1: + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -2684,21 +2753,21 @@ packages: type-check: 0.4.0 dev: true - /lilconfig/2.0.5: + /lilconfig@2.0.5: resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} engines: {node: '>=10'} dev: true - /lilconfig/2.0.6: + /lilconfig@2.0.6: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} dev: true - /lines-and-columns/1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged/13.0.3: + /lint-staged@13.0.3: resolution: {integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true @@ -2721,7 +2790,7 @@ packages: - supports-color dev: true - /listr2/4.0.5: + /listr2@4.0.5: resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} engines: {node: '>=12'} peerDependencies: @@ -2740,12 +2809,12 @@ packages: wrap-ansi: 7.0.0 dev: true - /load-tsconfig/0.2.3: + /load-tsconfig@0.2.3: resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /locate-path/2.0.0: + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} dependencies: @@ -2753,22 +2822,22 @@ packages: path-exists: 3.0.0 dev: true - /locate-path/6.0.0: + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /lodash.merge/4.6.2: + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.sortby/4.7.0: + /lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} dev: true - /log-update/4.0.0: + /log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} dependencies: @@ -2778,29 +2847,29 @@ packages: wrap-ansi: 6.2.0 dev: true - /loose-envify/1.4.0: + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 - /lru-cache/6.0.0: + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -2808,39 +2877,39 @@ packages: picomatch: 2.3.1 dev: true - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} dev: true - /mimic-fn/4.0.0: + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} dev: true - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimist/1.2.6: + /minimist@1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true - /ms/2.0.0: + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /ms/2.1.3: + /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /mz/2.7.0: + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 @@ -2848,41 +2917,41 @@ packages: thenify-all: 1.6.0 dev: true - /nanoid/3.3.4: + /nanoid@3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: false - /natural-compare/1.4.0: + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /next-seo/5.5.0_7gpduzaz4csxytrukenoyuq3te: + /next-seo@5.5.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-5ouBHFtx8YrSDW44lj0qIEQ+oMcz6stgoITB+SqHUZbhgizoJsyLmq73gJ0lxtEKpcN8vG2QgRIJfdb8OAPChw==} peerDependencies: next: ^8.1.1-canary.54 || >=9.0.0 react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - next: 12.2.2_qn5eqpoej7on3nhyoj73scbypy + next: 12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /next-themes/0.2.0_7gpduzaz4csxytrukenoyuq3te: + /next-themes@0.2.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-myhpDL4vadBD9YDSHiewqvzorGzB03N84e+3LxCwHRlM/hiBOaW+UsKsQojQAzC7fdcJA0l2ppveXcYaVV+hxQ==} peerDependencies: next: '*' react: '*' react-dom: '*' dependencies: - next: 12.2.2_qn5eqpoej7on3nhyoj73scbypy + next: 12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false - /next/12.1.6_biqbaboplfbrettd7655fr4n2y: + /next@12.1.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==} engines: {node: '>=12.22.0'} hasBin: true @@ -2904,8 +2973,8 @@ packages: caniuse-lite: 1.0.30001374 postcss: 8.4.5 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - styled-jsx: 5.0.2_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.0.2(react@18.2.0) optionalDependencies: '@next/swc-android-arm-eabi': 12.1.6 '@next/swc-android-arm64': 12.1.6 @@ -2924,7 +2993,7 @@ packages: - babel-plugin-macros dev: false - /next/12.2.2_qn5eqpoej7on3nhyoj73scbypy: + /next@12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3): resolution: {integrity: sha512-zAYFY45aBry/PlKONqtlloRFqU/We3zWYdn2NoGvDZkoYUYQSJC8WMcalS5C19MxbCZLUVCX7D7a6gTGgl2yLg==} engines: {node: '>=12.22.0'} hasBin: true @@ -2947,10 +3016,10 @@ packages: caniuse-lite: 1.0.30001374 postcss: 8.4.5 react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 + react-dom: 18.2.0(react@18.2.0) sass: 1.54.3 - styled-jsx: 5.0.2_react@18.2.0 - use-sync-external-store: 1.1.0_react@18.2.0 + styled-jsx: 5.0.2(react@18.2.0) + use-sync-external-store: 1.1.0(react@18.2.0) optionalDependencies: '@next/swc-android-arm-eabi': 12.2.2 '@next/swc-android-arm64': 12.2.2 @@ -2970,39 +3039,39 @@ packages: - babel-plugin-macros dev: false - /normalize-path/3.0.0: + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true - /npm-run-path/5.1.0: + /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 dev: true - /object-assign/4.1.1: + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.12.2: + /object-inspect@1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true - /object-keys/1.1.1: + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} dev: true - /object.assign/4.1.3: + /object.assign@4.1.3: resolution: {integrity: sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==} engines: {node: '>= 0.4'} dependencies: @@ -3012,7 +3081,7 @@ packages: object-keys: 1.1.1 dev: true - /object.entries/1.1.5: + /object.entries@1.1.5: resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} engines: {node: '>= 0.4'} dependencies: @@ -3021,7 +3090,7 @@ packages: es-abstract: 1.20.1 dev: true - /object.fromentries/2.0.5: + /object.fromentries@2.0.5: resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} engines: {node: '>= 0.4'} dependencies: @@ -3030,14 +3099,14 @@ packages: es-abstract: 1.20.1 dev: true - /object.hasown/1.1.1: + /object.hasown@1.1.1: resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} dependencies: define-properties: 1.1.4 es-abstract: 1.20.1 dev: true - /object.values/1.1.5: + /object.values@1.1.5: resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} engines: {node: '>= 0.4'} dependencies: @@ -3046,27 +3115,27 @@ packages: es-abstract: 1.20.1 dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true - /onetime/6.0.0: + /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 dev: true - /optionator/0.9.1: + /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} dependencies: @@ -3078,113 +3147,123 @@ packages: word-wrap: 1.2.3 dev: true - /p-limit/1.3.0: + /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} dependencies: p-try: 1.0.0 dev: true - /p-limit/3.1.0: + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-locate/2.0.0: + /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} dependencies: p-limit: 1.3.0 dev: true - /p-locate/5.0.0: + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-map/4.0.0: + /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 dev: true - /p-try/1.0.0: + /p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} dev: true - /parent-module/1.0.1: + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - /path-exists/3.0.0: + /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} dev: true - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-key/4.0.0: + /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} dev: true - /path-parse/1.0.7: + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /pidtree/0.6.0: + /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} hasBin: true dev: true - /pirates/4.0.5: + /pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} dev: true - /playwright-core/1.24.1: - resolution: {integrity: sha512-1RoSDe/oTQS1Ct7Pb8i+vcFKbKYpmVIBXk0IUiD8RvCUMnNl7EJF1OSQ9E8TZ5RYamWkW2Psir9e8Doyz1FnhQ==} - engines: {node: '>=14'} + /playwright-core@1.41.1: + resolution: {integrity: sha512-/KPO5DzXSMlxSX77wy+HihKGOunh3hqndhqeo/nMxfigiKzogn8kfL0ZBDu0L1RKgan5XHCPmn6zXd2NUJgjhg==} + engines: {node: '>=16'} hasBin: true dev: true - /popmotion/11.0.3: + /playwright@1.41.1: + resolution: {integrity: sha512-gdZAWG97oUnbBdRL3GuBvX3nDDmUOuqzV/D24dytqlKt+eI5KbwusluZRGljx1YoJKZ2NRPaeWiFTeGZO7SosQ==} + engines: {node: '>=16'} + hasBin: true + dependencies: + playwright-core: 1.41.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /popmotion@11.0.3: resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} dependencies: framesync: 6.0.1 @@ -3193,7 +3272,7 @@ packages: tslib: 2.4.0 dev: false - /postcss-load-config/3.1.4: + /postcss-load-config@3.1.4: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -3209,7 +3288,7 @@ packages: yaml: 1.10.2 dev: true - /postcss/8.4.5: + /postcss@8.4.5: resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==} engines: {node: ^10 || ^12 || >=14} dependencies: @@ -3218,25 +3297,31 @@ packages: source-map-js: 1.0.2 dev: false - /prelude-ls/1.2.1: + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prettier-linter-helpers/1.0.0: + /prettier-linter-helpers@1.0.0: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.2.0 dev: true - /prettier/2.7.1: + /prettier@2.7.1: resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} engines: {node: '>=10.13.0'} hasBin: true dev: true - /prism-react-renderer/1.3.5_react@18.2.0: + /prettier@3.2.4: + resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /prism-react-renderer@1.3.5(react@18.2.0): resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} peerDependencies: react: '>=0.14.9' @@ -3244,7 +3329,7 @@ packages: react: 18.2.0 dev: false - /prop-types/15.8.1: + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 @@ -3252,16 +3337,16 @@ packages: react-is: 16.13.1 dev: true - /punycode/2.1.1: + /punycode@2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /react-dom/18.2.0_react@18.2.0: + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: react: ^18.2.0 @@ -3271,11 +3356,11 @@ packages: scheduler: 0.23.0 dev: false - /react-is/16.13.1: + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-remove-scroll-bar/2.3.3_3hx2ussxxho4jajbwrd6gq34qe: + /react-remove-scroll-bar@2.3.3(@types/react@18.0.15)(react@18.2.0): resolution: {integrity: sha512-i9GMNWwpz8XpUpQ6QlevUtFjHGqnPG4Hxs+wlIJntu/xcsZVEpJcIV71K3ZkqNy2q3GfgvkD7y6t/Sv8ofYSbw==} engines: {node: '>=10'} peerDependencies: @@ -3287,26 +3372,11 @@ packages: dependencies: '@types/react': 18.0.15 react: 18.2.0 - react-style-singleton: 2.2.1_3hx2ussxxho4jajbwrd6gq34qe - tslib: 2.4.0 - dev: false - - /react-remove-scroll-bar/2.3.3_@types+react@18.0.15: - resolution: {integrity: sha512-i9GMNWwpz8XpUpQ6QlevUtFjHGqnPG4Hxs+wlIJntu/xcsZVEpJcIV71K3ZkqNy2q3GfgvkD7y6t/Sv8ofYSbw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.15 - react-style-singleton: 2.2.1_@types+react@18.0.15 + react-style-singleton: 2.2.1(@types/react@18.0.15)(react@18.2.0) tslib: 2.4.0 dev: false - /react-remove-scroll/2.5.4_@types+react@18.0.15: + /react-remove-scroll@2.5.4(@types/react@18.0.15)(react@18.2.0): resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} engines: {node: '>=10'} peerDependencies: @@ -3317,14 +3387,15 @@ packages: optional: true dependencies: '@types/react': 18.0.15 - react-remove-scroll-bar: 2.3.3_@types+react@18.0.15 - react-style-singleton: 2.2.1_@types+react@18.0.15 + react: 18.2.0 + react-remove-scroll-bar: 2.3.3(@types/react@18.0.15)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.0.15)(react@18.2.0) tslib: 2.4.0 - use-callback-ref: 1.3.0_@types+react@18.0.15 - use-sidecar: 1.1.2_@types+react@18.0.15 + use-callback-ref: 1.3.0(@types/react@18.0.15)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.0.15)(react@18.2.0) dev: false - /react-remove-scroll/2.5.5_3hx2ussxxho4jajbwrd6gq34qe: + /react-remove-scroll@2.5.5(@types/react@18.0.15)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -3336,14 +3407,14 @@ packages: dependencies: '@types/react': 18.0.15 react: 18.2.0 - react-remove-scroll-bar: 2.3.3_3hx2ussxxho4jajbwrd6gq34qe - react-style-singleton: 2.2.1_3hx2ussxxho4jajbwrd6gq34qe + react-remove-scroll-bar: 2.3.3(@types/react@18.0.15)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.0.15)(react@18.2.0) tslib: 2.4.0 - use-callback-ref: 1.3.0_3hx2ussxxho4jajbwrd6gq34qe - use-sidecar: 1.1.2_3hx2ussxxho4jajbwrd6gq34qe + use-callback-ref: 1.3.0(@types/react@18.0.15)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.0.15)(react@18.2.0) dev: false - /react-style-singleton/2.2.1_3hx2ussxxho4jajbwrd6gq34qe: + /react-style-singleton@2.2.1(@types/react@18.0.15)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -3360,39 +3431,23 @@ packages: tslib: 2.4.0 dev: false - /react-style-singleton/2.2.1_@types+react@18.0.15: - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.15 - get-nonce: 1.0.1 - invariant: 2.2.4 - tslib: 2.4.0 - dev: false - - /react/18.2.0: + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 dev: false - /readdirp/3.6.0: + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - /regenerator-runtime/0.13.9: + /regenerator-runtime@0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - /regexp.prototype.flags/1.4.3: + /regexp.prototype.flags@1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} dependencies: @@ -3401,22 +3456,22 @@ packages: functions-have-names: 1.2.3 dev: true - /regexpp/3.2.0: + /regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} dev: true - /resolve-from/4.0.0: + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-from/5.0.0: + /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} dev: true - /resolve/1.22.1: + /resolve@1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true dependencies: @@ -3425,7 +3480,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve/2.0.0-next.4: + /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: @@ -3434,7 +3489,7 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor/3.1.0: + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: @@ -3442,43 +3497,43 @@ packages: signal-exit: 3.0.7 dev: true - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rfdc/1.3.0: + /rfdc@1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true - /rimraf/3.0.2: + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.3 dev: true - /rollup/2.77.2: + /rollup@2.77.2: resolution: {integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /run-parallel/1.2.0: + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs/7.5.6: + /rxjs@7.5.6: resolution: {integrity: sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==} dependencies: tslib: 2.4.0 dev: true - /sass/1.54.3: + /sass@1.54.3: resolution: {integrity: sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw==} engines: {node: '>=12.0.0'} hasBin: true @@ -3488,18 +3543,18 @@ packages: source-map-js: 1.0.2 dev: false - /scheduler/0.23.0: + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: loose-envify: 1.4.0 dev: false - /semver/6.3.0: + /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true dev: true - /semver/7.3.7: + /semver@7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} engines: {node: '>=10'} hasBin: true @@ -3507,19 +3562,19 @@ packages: lru-cache: 6.0.0 dev: true - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /side-channel/1.0.4: + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 @@ -3527,16 +3582,16 @@ packages: object-inspect: 1.12.2 dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /slice-ansi/3.0.0: + /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} dependencies: @@ -3545,7 +3600,7 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi/4.0.0: + /slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} dependencies: @@ -3554,7 +3609,7 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true - /slice-ansi/5.0.0: + /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} dependencies: @@ -3562,24 +3617,24 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /source-map-js/1.0.2: + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} dev: false - /source-map/0.8.0-beta.0: + /source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} dependencies: whatwg-url: 7.1.0 dev: true - /string-argv/0.3.1: + /string-argv@0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -3588,7 +3643,7 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width/5.1.2: + /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} dependencies: @@ -3597,7 +3652,7 @@ packages: strip-ansi: 7.0.1 dev: true - /string.prototype.matchall/4.0.7: + /string.prototype.matchall@4.0.7: resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} dependencies: call-bind: 1.0.2 @@ -3610,7 +3665,7 @@ packages: side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.5: + /string.prototype.trimend@1.0.5: resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: call-bind: 1.0.2 @@ -3618,7 +3673,7 @@ packages: es-abstract: 1.20.1 dev: true - /string.prototype.trimstart/1.0.5: + /string.prototype.trimstart@1.0.5: resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: call-bind: 1.0.2 @@ -3626,48 +3681,48 @@ packages: es-abstract: 1.20.1 dev: true - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /strip-ansi/7.0.1: + /strip-ansi@7.0.1: resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true - /strip-bom/3.0.0: + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /strip-final-newline/3.0.0: + /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} dev: true - /strip-json-comments/3.1.1: + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /style-value-types/5.0.0: + /style-value-types@5.0.0: resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} dependencies: hey-listen: 1.0.8 tslib: 2.4.0 dev: false - /styled-jsx/5.0.2_react@18.2.0: + /styled-jsx@5.0.2(react@18.2.0): resolution: {integrity: sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -3683,7 +3738,7 @@ packages: react: 18.2.0 dev: false - /sucrase/3.25.0: + /sucrase@3.25.0: resolution: {integrity: sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ==} engines: {node: '>=8'} hasBin: true @@ -3696,77 +3751,77 @@ packages: ts-interface-checker: 0.1.13 dev: true - /supports-color/5.5.0: + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 dev: true - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true - /supports-preserve-symlinks-flag/1.0.0: + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /text-table/0.2.0: + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /thenify-all/1.6.0: + /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 dev: true - /thenify/3.3.1: + /thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 dev: true - /through/2.3.8: + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /to-fast-properties/2.0.0: + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true - /to-regex-range/5.0.1: + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - /toggle-selection/1.0.6: + /toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} dev: false - /tr46/1.0.1: + /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: punycode: 2.1.1 dev: true - /tree-kill/1.2.2: + /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true - /ts-interface-checker/0.1.13: + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /tsconfig-paths/3.14.1: + /tsconfig-paths@3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: '@types/json5': 0.0.29 @@ -3775,13 +3830,13 @@ packages: strip-bom: 3.0.0 dev: true - /tslib/1.14.1: + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.4.0: + /tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - /tsup/6.2.1_typescript@4.6.4: + /tsup@6.2.1(typescript@4.6.4): resolution: {integrity: sha512-KhBhCqVA3bHrIWhkcqTUA7R69H05IcBlHEtCVLEu42XDGUzz+bDqCcfu5PwpkKJ8DqK5tpdgM/qmyk4DdUbkZw==} engines: {node: '>=14'} hasBin: true @@ -3797,7 +3852,7 @@ packages: typescript: optional: true dependencies: - bundle-require: 3.0.4_esbuild@0.14.54 + bundle-require: 3.0.4(esbuild@0.14.54) cac: 6.7.12 chokidar: 3.5.3 debug: 4.3.4 @@ -3817,7 +3872,7 @@ packages: - ts-node dev: true - /tsutils/3.21.0_typescript@4.7.4: + /tsutils@3.21.0(typescript@4.7.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: @@ -3827,35 +3882,35 @@ packages: typescript: 4.7.4 dev: true - /type-check/0.4.0: + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-fest/0.20.2: + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest/0.21.3: + /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true - /typescript/4.6.4: + /typescript@4.6.4: resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /typescript/4.7.4: + /typescript@4.7.4: resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} engines: {node: '>=4.2.0'} hasBin: true - /unbox-primitive/1.0.2: + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.2 @@ -3864,13 +3919,13 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 dev: true - /use-callback-ref/1.3.0_3hx2ussxxho4jajbwrd6gq34qe: + /use-callback-ref@1.3.0(@types/react@18.0.15)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -3885,21 +3940,7 @@ packages: tslib: 2.4.0 dev: false - /use-callback-ref/1.3.0_@types+react@18.0.15: - resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.15 - tslib: 2.4.0 - dev: false - - /use-sidecar/1.1.2_3hx2ussxxho4jajbwrd6gq34qe: + /use-sidecar@1.1.2(@types/react@18.0.15)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -3915,22 +3956,7 @@ packages: tslib: 2.4.0 dev: false - /use-sidecar/1.1.2_@types+react@18.0.15: - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.15 - detect-node-es: 1.1.0 - tslib: 2.4.0 - dev: false - - /use-sync-external-store/1.1.0_react@18.2.0: + /use-sync-external-store@1.1.0(react@18.2.0): resolution: {integrity: sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3938,15 +3964,15 @@ packages: react: 18.2.0 dev: false - /v8-compile-cache/2.3.0: + /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /webidl-conversions/4.0.2: + /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: true - /whatwg-url/7.1.0: + /whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} dependencies: lodash.sortby: 4.7.0 @@ -3954,7 +3980,7 @@ packages: webidl-conversions: 4.0.2 dev: true - /which-boxed-primitive/1.0.2: + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 @@ -3964,7 +3990,7 @@ packages: is-symbol: 1.0.4 dev: true - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -3972,12 +3998,12 @@ packages: isexe: 2.0.0 dev: true - /word-wrap/1.2.3: + /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} dev: true - /wrap-ansi/6.2.0: + /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} dependencies: @@ -3986,7 +4012,7 @@ packages: strip-ansi: 6.0.1 dev: true - /wrap-ansi/7.0.0: + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -3995,25 +4021,25 @@ packages: strip-ansi: 6.0.1 dev: true - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /yallist/4.0.0: + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml/1.10.2: + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true - /yaml/2.1.1: + /yaml@2.1.1: resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} engines: {node: '>= 14'} dev: true - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true From 1f26a99a145dd275e8eaacacb20e2eca63f1d40c Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:35:59 -0800 Subject: [PATCH 18/36] fix React prop warning with forceMount --- cmdk/src/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index c38ccfe..32b5153 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -633,7 +633,7 @@ const Item = React.forwardRef((props, forwardedRef) = if (!render) return null - const { disabled, value: _, onSelect: __, ...etc } = props + const { disabled, value: _, onSelect: __, forceMount: ___, ...etc } = props return (
Date: Mon, 29 Jan 2024 18:36:42 -0800 Subject: [PATCH 19/36] add section to README about testing --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 9056e81..9f72775 100644 --- a/README.md +++ b/README.md @@ -433,3 +433,24 @@ You can find global stylesheets to drop in as a starting point for styling. See Written in 2019 by Paco ([@pacocoursey](https://twitter.com/pacocoursey)) to see if a composable combobox API was possible. Used for the Vercel command menu and autocomplete by Rauno ([@raunofreiberg](https://twitter.com/raunofreiberg)) in 2020. Re-written independently in 2022 with a simpler and more performant approach. Ideas and help from Shu ([@shuding\_](https://twitter.com/shuding_)). [use-descendants](https://github.com/pacocoursey/use-descendants) was extracted from the 2019 version. + +## Testing + +First, install dependencies and Playwright browsers: + +```bash +pnpm install +pnpm playwright install +``` + +Then ensure you've built the library: + +```bash +pnpm build +``` + +Then run the tests using your local build against real browser engines: + +```bash +pnpm test +``` From ed8a8470b101c93adc1a2db8053616b07578e58b Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:38:35 -0800 Subject: [PATCH 20/36] upgrade tsup --- package.json | 2 +- pnpm-lock.yaml | 628 ++++++++++++++++++++++++++++++------------------- 2 files changed, 385 insertions(+), 245 deletions(-) diff --git a/package.json b/package.json index 9d8bc71..1c5bd32 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "devDependencies": { "@playwright/test": "1.41.1", "prettier": "2.7.1", - "tsup": "6.2.1", + "tsup": "8.0.1", "typescript": "4.6.4" }, "packageManager": "pnpm@8.8.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bee9bc2..083fb78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: 2.7.1 version: 2.7.1 tsup: - specifier: 6.2.1 - version: 6.2.1(typescript@4.6.4) + specifier: 8.0.1 + version: 8.0.1(typescript@4.6.4) typescript: specifier: 4.6.4 version: 4.6.4 @@ -123,7 +123,7 @@ importers: version: 8.5.0(eslint@8.21.0) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.5.0)(eslint@8.21.0)(prettier@3.2.4) + version: 4.2.1(eslint-config-prettier@8.5.0)(eslint@8.21.0)(prettier@2.7.1) eslint-plugin-react: specifier: ^7.30.1 version: 7.30.1(eslint@8.21.0) @@ -273,8 +273,107 @@ packages: dev: false optional: true - /@esbuild/linux-loong64@0.14.54: - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -282,6 +381,105 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint/eslintrc@1.3.0: resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1096,6 +1294,110 @@ packages: '@babel/runtime': 7.18.9 dev: false + /@rollup/rollup-android-arm-eabi@4.9.6: + resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.6: + resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.6: + resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.6: + resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.6: + resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.6: + resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.6: + resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.6: + resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.6: + resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.6: + resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.6: + resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.6: + resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.6: + resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@rushstack/eslint-patch@1.1.4: resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==} dev: true @@ -1106,6 +1408,10 @@ packages: tslib: 2.4.0 dev: false + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true @@ -1383,13 +1689,13 @@ packages: dependencies: fill-range: 7.0.1 - /bundle-require@3.0.4(esbuild@0.14.54): - resolution: {integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==} + /bundle-require@4.0.2(esbuild@0.19.12): + resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: '>=0.13' + esbuild: '>=0.17' dependencies: - esbuild: 0.14.54 + esbuild: 0.19.12 load-tsconfig: 0.2.3 dev: true @@ -1666,213 +1972,35 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/linux-loong64': 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 dev: true /escape-string-regexp@1.0.5: @@ -2026,7 +2154,7 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.5.0)(eslint@8.21.0)(prettier@3.2.4): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.5.0)(eslint@8.21.0)(prettier@2.7.1): resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -2039,7 +2167,7 @@ packages: dependencies: eslint: 8.21.0 eslint-config-prettier: 8.5.0(eslint@8.21.0) - prettier: 3.2.4 + prettier: 2.7.1 prettier-linter-helpers: 1.0.0 dev: true @@ -2758,9 +2886,9 @@ packages: engines: {node: '>=10'} dev: true - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} dev: true /lines-and-columns@1.2.4: @@ -3272,9 +3400,9 @@ packages: tslib: 2.4.0 dev: false - /postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + /postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' @@ -3284,8 +3412,8 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.0.6 - yaml: 1.10.2 + lilconfig: 3.0.0 + yaml: 2.3.4 dev: true /postcss@8.4.5: @@ -3315,12 +3443,6 @@ packages: hasBin: true dev: true - /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} - engines: {node: '>=14'} - hasBin: true - dev: true - /prism-react-renderer@1.3.5(react@18.2.0): resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} peerDependencies: @@ -3513,11 +3635,26 @@ packages: glob: 7.2.3 dev: true - /rollup@2.77.2: - resolution: {integrity: sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==} - engines: {node: '>=10.0.0'} + /rollup@4.9.6: + resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.6 + '@rollup/rollup-android-arm64': 4.9.6 + '@rollup/rollup-darwin-arm64': 4.9.6 + '@rollup/rollup-darwin-x64': 4.9.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 + '@rollup/rollup-linux-arm64-gnu': 4.9.6 + '@rollup/rollup-linux-arm64-musl': 4.9.6 + '@rollup/rollup-linux-riscv64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-gnu': 4.9.6 + '@rollup/rollup-linux-x64-musl': 4.9.6 + '@rollup/rollup-win32-arm64-msvc': 4.9.6 + '@rollup/rollup-win32-ia32-msvc': 4.9.6 + '@rollup/rollup-win32-x64-msvc': 4.9.6 fsevents: 2.3.3 dev: true @@ -3836,15 +3973,18 @@ packages: /tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - /tsup@6.2.1(typescript@4.6.4): - resolution: {integrity: sha512-KhBhCqVA3bHrIWhkcqTUA7R69H05IcBlHEtCVLEu42XDGUzz+bDqCcfu5PwpkKJ8DqK5tpdgM/qmyk4DdUbkZw==} - engines: {node: '>=14'} + /tsup@8.0.1(typescript@4.6.4): + resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} + engines: {node: '>=18'} hasBin: true peerDependencies: + '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 - typescript: ^4.1.0 + typescript: '>=4.5.0' peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true '@swc/core': optional: true postcss: @@ -3852,17 +3992,17 @@ packages: typescript: optional: true dependencies: - bundle-require: 3.0.4(esbuild@0.14.54) + bundle-require: 4.0.2(esbuild@0.19.12) cac: 6.7.12 chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.14.54 + esbuild: 0.19.12 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 3.1.4 + postcss-load-config: 4.0.2 resolve-from: 5.0.0 - rollup: 2.77.2 + rollup: 4.9.6 source-map: 0.8.0-beta.0 sucrase: 3.25.0 tree-kill: 1.2.2 @@ -4029,16 +4169,16 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - /yaml@2.1.1: resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} engines: {node: '>= 14'} dev: true + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} From 59167439247cda7bfbcc6efd7950341460d33b01 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:41:47 -0800 Subject: [PATCH 21/36] use pnpm in all bash examples --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9f72775..12a535b 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Demo and examples: [cmdk.paco.me](https://cmdk.paco.me) ## Install ```bash -npm install cmdk +pnpm install cmdk ``` ## Use @@ -374,7 +374,7 @@ return ( We recommend using the [Radix UI popover](https://www.radix-ui.com/docs/primitives/components/popover) component. ⌘K relies on the Radix UI Dialog component, so this will reduce your bundle size a bit due to shared dependencies. ```bash -$ npm install @radix-ui/react-popover +$ pnpm install @radix-ui/react-popover ``` Render `Command` inside of the popover content: From 36cb114251dadc8186949ca4c2e042546a4a6ef3 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:42:54 -0800 Subject: [PATCH 22/36] nit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 12a535b..59e1afe 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # ⌘K [![cmdk minzip package size](https://img.shields.io/bundlephobia/minzip/cmdk)](https://www.npmjs.com/package/cmdk?activeTab=code) [![cmdk package version](https://img.shields.io/npm/v/cmdk.svg?colorB=green)](https://www.npmjs.com/package/cmdk) -⌘K is a command menu React component that can also be used as an accessible combobox. You render items, it filters and sorts them automatically. ⌘K supports a fully composable API [How?](/ARCHITECTURE.md), so you can wrap items in other components or even as static JSX. +⌘K is a command menu React component that can also be used as an accessible combobox. You render items, it filters and sorts them automatically. ⌘K supports a fully composable API [How?](/ARCHITECTURE.md), so you can wrap items in other components or even as static JSX. Demo and examples: [cmdk.paco.me](https://cmdk.paco.me) From 8a3bf1bd33e3588c09c9288bd8e8af870bad8515 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:43:34 -0800 Subject: [PATCH 23/36] v0.2.1 --- cmdk/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmdk/package.json b/cmdk/package.json index f4b5a87..3669fb6 100644 --- a/cmdk/package.json +++ b/cmdk/package.json @@ -1,6 +1,6 @@ { "name": "cmdk", - "version": "0.2.0", + "version": "0.2.1", "license": "MIT", "main": "./dist/index.js", "module": "./dist/index.mjs", From c63d6ecc690b7443f1ee057f14322748e69b7e90 Mon Sep 17 00:00:00 2001 From: soso Date: Tue, 30 Jan 2024 12:11:48 +0900 Subject: [PATCH 24/36] fix: add exports field for support esm (#141) --- cmdk/package.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmdk/package.json b/cmdk/package.json index 3669fb6..fc3beca 100644 --- a/cmdk/package.json +++ b/cmdk/package.json @@ -8,6 +8,13 @@ "files": [ "dist" ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + } + }, "scripts": { "prepublishOnly": "cp ../README.md . && pnpm build", "postpublish": "rm README.md", From e97839f1659795281c9f794511a487cab35d5d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Tue, 30 Jan 2024 00:43:24 -0300 Subject: [PATCH 25/36] Disable select item with mouse (#116) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: remove select item via mouse event * chore: update examples to use hover * chore: disable pointer selection via prop * fix bug from merge, my bad * upgrade next --------- Co-authored-by: João Pedro Magalhães Co-authored-by: paco <34928425+pacocoursey@users.noreply.github.com> --- cmdk/src/index.tsx | 21 ++++- pnpm-lock.yaml | 212 ++++++++++++++++++++++--------------------- website/package.json | 2 +- 3 files changed, 129 insertions(+), 106 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 32b5153..d04c215 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -91,6 +91,10 @@ type CommandProps = Children & * Optionally set to `true` to turn on looping around when using the arrow keys. */ loop?: boolean + /** + * Optionally set to `true` to disable selection via pointer events. + */ + disablePointerSelection?: boolean /** * Set to `false` to disable ctrl+n/j/p/k shortcuts. Defaults to `true`. */ @@ -103,6 +107,7 @@ type Context = { group: (id: string) => () => void filter: () => boolean label: string + disablePointerSelection: boolean commandRef: React.RefObject // Ids listId: string @@ -165,7 +170,18 @@ const Command = React.forwardRef((props, forwarded const ids = useLazyRef>(() => new Map()) // id → value const listeners = useLazyRef void>>(() => new Set()) // [...rerenders] const propsRef = useAsRef(props) - const { label, children, value, onValueChange, filter, shouldFilter, vimBindings = true, ...etc } = props + const { + label, + children, + value, + onValueChange, + filter, + shouldFilter, + loop, + disablePointerSelection = false, + vimBindings = true, + ...etc + } = props const listId = React.useId() const labelId = React.useId() @@ -296,6 +312,7 @@ const Command = React.forwardRef((props, forwarded return propsRef.current.shouldFilter }, label: label || props['aria-label'], + disablePointerSelection, commandRef: ref, listId, inputId, @@ -646,7 +663,7 @@ const Item = React.forwardRef((props, forwardedRef) = aria-selected={selected || undefined} data-disabled={disabled || undefined} data-selected={selected || undefined} - onPointerMove={disabled ? undefined : select} + onPointerMove={disabled || context.disablePointerSelection ? undefined : select} onClick={disabled ? undefined : onSelect} > {props.children} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 083fb78..e3e6ad9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,14 +79,14 @@ importers: specifier: ^6.5.1 version: 6.5.1(react-dom@18.2.0)(react@18.2.0) next: - specifier: 12.2.2 - version: 12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) + specifier: 14.1.0 + version: 14.1.0(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) next-seo: specifier: ^5.5.0 - version: 5.5.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0) + version: 5.5.0(next@14.1.0)(react-dom@18.2.0)(react@18.2.0) next-themes: specifier: ^0.2.0 - version: 0.2.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0) + version: 0.2.0(next@14.1.0)(react-dom@18.2.0)(react@18.2.0) prism-react-renderer: specifier: ^1.3.5 version: 1.3.5(react@18.2.0) @@ -597,8 +597,8 @@ packages: resolution: {integrity: sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==} dev: false - /@next/env@12.2.2: - resolution: {integrity: sha512-BqDwE4gDl1F608TpnNxZqrCn6g48MBjvmWFEmeX5wEXDXh3IkAOw6ASKUgjT8H4OUePYFqghDFUss5ZhnbOUjw==} + /@next/env@14.1.0: + resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} dev: false /@next/eslint-plugin-next@12.2.2: @@ -616,15 +616,6 @@ packages: dev: false optional: true - /@next/swc-android-arm-eabi@12.2.2: - resolution: {integrity: sha512-VHjuCHeq9qCprUZbsRxxM/VqSW8MmsUtqB5nEpGEgUNnQi/BTm/2aK8tl7R4D0twGKRh6g1AAeFuWtXzk9Z/vQ==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - /@next/swc-android-arm64@12.1.6: resolution: {integrity: sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==} engines: {node: '>= 10'} @@ -634,15 +625,6 @@ packages: dev: false optional: true - /@next/swc-android-arm64@12.2.2: - resolution: {integrity: sha512-v5EYzXUOSv0r9mO/2PX6mOcF53k8ndlu9yeFHVAWW1Dhw2jaJcvTRcCAwYYN8Q3tDg0nH3NbEltJDLKmcJOuVA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-arm64@12.1.6: resolution: {integrity: sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==} engines: {node: '>= 10'} @@ -652,8 +634,8 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64@12.2.2: - resolution: {integrity: sha512-JCoGySHKGt+YBk7xRTFGx1QjrnCcwYxIo3yGepcOq64MoiocTM3yllQWeOAJU2/k9MH0+B5E9WUSme4rOCBbpA==} + /@next/swc-darwin-arm64@14.1.0: + resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -670,8 +652,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@12.2.2: - resolution: {integrity: sha512-dztDtvfkhUqiqpXvrWVccfGhLe44yQ5tQ7B4tBfnsOR6vxzI9DNPHTlEOgRN9qDqTAcFyPxvg86mn4l8bB9Jcw==} + /@next/swc-darwin-x64@14.1.0: + resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -679,15 +661,6 @@ packages: dev: false optional: true - /@next/swc-freebsd-x64@12.2.2: - resolution: {integrity: sha512-JUnXB+2xfxqsAvhFLPJpU1NeyDsvJrKoOjpV7g3Dxbno2Riu4tDKn3kKF886yleAuD/1qNTUCpqubTvbbT2VoA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm-gnueabihf@12.1.6: resolution: {integrity: sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==} engines: {node: '>= 10'} @@ -697,15 +670,6 @@ packages: dev: false optional: true - /@next/swc-linux-arm-gnueabihf@12.2.2: - resolution: {integrity: sha512-XeYC/qqPLz58R4pjkb+x8sUUxuGLnx9QruC7/IGkK68yW4G17PHwKI/1njFYVfXTXUukpWjcfBuauWwxp9ke7Q==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-gnu@12.1.6: resolution: {integrity: sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==} engines: {node: '>= 10'} @@ -715,8 +679,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@12.2.2: - resolution: {integrity: sha512-d6jT8xgfKYFkzR7J0OHo2D+kFvY/6W8qEo6/hmdrTt6AKAqxs//rbbcdoyn3YQq1x6FVUUd39zzpezZntg9Naw==} + /@next/swc-linux-arm64-gnu@14.1.0: + resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -733,8 +697,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@12.2.2: - resolution: {integrity: sha512-rIZRFxI9N/502auJT1i7coas0HTHUM+HaXMyJiCpnY8Rimbo0495ir24tzzHo3nQqJwcflcPTwEh/DV17sdv9A==} + /@next/swc-linux-arm64-musl@14.1.0: + resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -751,8 +715,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@12.2.2: - resolution: {integrity: sha512-ir1vNadlUDj7eQk15AvfhG5BjVizuCHks9uZwBfUgT5jyeDCeRvaDCo1+Q6+0CLOAnYDR/nqSCvBgzG2UdFh9A==} + /@next/swc-linux-x64-gnu@14.1.0: + resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -769,8 +733,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@12.2.2: - resolution: {integrity: sha512-bte5n2GzLN3O8JdSFYWZzMgEgDHZmRz5wiispiiDssj4ik3l8E7wq/czNi8RmIF+ioj2sYVokUNa/ekLzrESWw==} + /@next/swc-linux-x64-musl@14.1.0: + resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -787,8 +751,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@12.2.2: - resolution: {integrity: sha512-ZUGCmcDmdPVSAlwJ/aD+1F9lYW8vttseiv4n2+VCDv5JloxiX9aY32kYZaJJO7hmTLNrprvXkb4OvNuHdN22Jg==} + /@next/swc-win32-arm64-msvc@14.1.0: + resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -805,8 +769,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@12.2.2: - resolution: {integrity: sha512-v7ykeEDbr9eXiblGSZiEYYkWoig6sRhAbLKHUHQtk8vEWWVEqeXFcxmw6LRrKu5rCN1DY357UlYWToCGPQPCRA==} + /@next/swc-win32-ia32-msvc@14.1.0: + resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -823,8 +787,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@12.2.2: - resolution: {integrity: sha512-2D2iinWUL6xx8D9LYVZ5qi7FP6uLAoWymt8m8aaG2Ld/Ka8/k723fJfiklfuAcwOxfufPJI+nRbT5VcgHGzHAQ==} + /@next/swc-win32-x64-msvc@14.1.0: + resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1402,8 +1366,8 @@ packages: resolution: {integrity: sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==} dev: true - /@swc/helpers@0.4.2: - resolution: {integrity: sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==} + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.4.0 dev: false @@ -1699,6 +1663,13 @@ packages: load-tsconfig: 0.2.3 dev: true + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + /cac@6.7.12: resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} engines: {node: '>=8'} @@ -1720,6 +1691,10 @@ packages: resolution: {integrity: sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==} dev: false + /caniuse-lite@1.0.30001581: + resolution: {integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==} + dev: false + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1779,6 +1754,10 @@ packages: string-width: 5.1.2 dev: true + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -2581,6 +2560,10 @@ packages: slash: 3.0.0 dev: true + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true @@ -3051,30 +3034,36 @@ packages: hasBin: true dev: false + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /next-seo@5.5.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0): + /next-seo@5.5.0(next@14.1.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-5ouBHFtx8YrSDW44lj0qIEQ+oMcz6stgoITB+SqHUZbhgizoJsyLmq73gJ0lxtEKpcN8vG2QgRIJfdb8OAPChw==} peerDependencies: next: ^8.1.1-canary.54 || >=9.0.0 react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - next: 12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) + next: 14.1.0(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next-themes@0.2.0(next@12.2.2)(react-dom@18.2.0)(react@18.2.0): + /next-themes@0.2.0(next@14.1.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-myhpDL4vadBD9YDSHiewqvzorGzB03N84e+3LxCwHRlM/hiBOaW+UsKsQojQAzC7fdcJA0l2ppveXcYaVV+hxQ==} peerDependencies: next: '*' react: '*' react-dom: '*' dependencies: - next: 12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) + next: 14.1.0(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -3121,47 +3110,41 @@ packages: - babel-plugin-macros dev: false - /next@12.2.2(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3): - resolution: {integrity: sha512-zAYFY45aBry/PlKONqtlloRFqU/We3zWYdn2NoGvDZkoYUYQSJC8WMcalS5C19MxbCZLUVCX7D7a6gTGgl2yLg==} - engines: {node: '>=12.22.0'} + /next@14.1.0(react-dom@18.2.0)(react@18.2.0)(sass@1.54.3): + resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} + engines: {node: '>=18.17.0'} hasBin: true peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^6.0.0 || ^7.0.0 - react: ^17.0.2 || ^18.0.0-0 - react-dom: ^17.0.2 || ^18.0.0-0 + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: - fibers: - optional: true - node-sass: + '@opentelemetry/api': optional: true sass: optional: true dependencies: - '@next/env': 12.2.2 - '@swc/helpers': 0.4.2 - caniuse-lite: 1.0.30001374 - postcss: 8.4.5 + '@next/env': 14.1.0 + '@swc/helpers': 0.5.2 + busboy: 1.6.0 + caniuse-lite: 1.0.30001581 + graceful-fs: 4.2.11 + postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) sass: 1.54.3 - styled-jsx: 5.0.2(react@18.2.0) - use-sync-external-store: 1.1.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) optionalDependencies: - '@next/swc-android-arm-eabi': 12.2.2 - '@next/swc-android-arm64': 12.2.2 - '@next/swc-darwin-arm64': 12.2.2 - '@next/swc-darwin-x64': 12.2.2 - '@next/swc-freebsd-x64': 12.2.2 - '@next/swc-linux-arm-gnueabihf': 12.2.2 - '@next/swc-linux-arm64-gnu': 12.2.2 - '@next/swc-linux-arm64-musl': 12.2.2 - '@next/swc-linux-x64-gnu': 12.2.2 - '@next/swc-linux-x64-musl': 12.2.2 - '@next/swc-win32-arm64-msvc': 12.2.2 - '@next/swc-win32-ia32-msvc': 12.2.2 - '@next/swc-win32-x64-msvc': 12.2.2 + '@next/swc-darwin-arm64': 14.1.0 + '@next/swc-darwin-x64': 14.1.0 + '@next/swc-linux-arm64-gnu': 14.1.0 + '@next/swc-linux-arm64-musl': 14.1.0 + '@next/swc-linux-x64-gnu': 14.1.0 + '@next/swc-linux-x64-musl': 14.1.0 + '@next/swc-win32-arm64-msvc': 14.1.0 + '@next/swc-win32-ia32-msvc': 14.1.0 + '@next/swc-win32-x64-msvc': 14.1.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -3416,6 +3399,15 @@ packages: yaml: 2.3.4 dev: true + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + /postcss@8.4.5: resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==} engines: {node: ^10 || ^12 || >=14} @@ -3766,6 +3758,11 @@ packages: whatwg-url: 7.1.0 dev: true + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + /string-argv@0.3.1: resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} engines: {node: '>=0.6.19'} @@ -3875,6 +3872,23 @@ packages: react: 18.2.0 dev: false + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: false + /sucrase@3.25.0: resolution: {integrity: sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ==} engines: {node: '>=8'} @@ -4096,14 +4110,6 @@ packages: tslib: 2.4.0 dev: false - /use-sync-external-store@1.1.0(react@18.2.0): - resolution: {integrity: sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true diff --git a/website/package.json b/website/package.json index c5c5b8c..068c71d 100644 --- a/website/package.json +++ b/website/package.json @@ -13,7 +13,7 @@ "cmdk": "workspace:*", "copy-to-clipboard": "^3.3.1", "framer-motion": "^6.5.1", - "next": "12.2.2", + "next": "14.1.0", "next-seo": "^5.5.0", "next-themes": "^0.2.0", "prism-react-renderer": "^1.3.5", From b768f2b58c0c1775280357e1fb0e833ae98a2adb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Tue, 30 Jan 2024 00:45:09 -0300 Subject: [PATCH 26/36] Fix forceMount too many rerenders (#143) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix forceMount too many rerenders * fix format --------- Co-authored-by: João Pedro Magalhães --- cmdk/src/index.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index d04c215..a79919e 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -621,8 +621,10 @@ const Item = React.forwardRef((props, forwardedRef) = const forceMount = propsRef.current?.forceMount ?? groupContext?.forceMount useLayoutEffect(() => { - return context.item(id, groupContext?.id) - }, []) + if (!forceMount) { + return context.item(id, groupContext?.id) + } + }, [forceMount]) const value = useValue(id, ref, [props.value, props.children, ref]) From 9b9758091b5ffc13b475748c0f488ca88db43232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Tue, 30 Jan 2024 00:46:12 -0300 Subject: [PATCH 27/36] fix: only scroll into view on first render and via keyboard (#135) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: only scroll into view on first render and via keyboard * refactor: remove unnecessary code --------- Co-authored-by: João Pedro Magalhães --- cmdk/src/index.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index a79919e..75aa8f9 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -194,11 +194,14 @@ const Command = React.forwardRef((props, forwarded if (value !== undefined) { const v = value.trim().toLowerCase() state.current.value = v - schedule(6, scrollSelectedIntoView) store.emit() } }, [value]) + useLayoutEffect(() => { + schedule(6, scrollSelectedIntoView) + }, []) + const store: Store = React.useMemo(() => { return { subscribe: (cb) => { @@ -218,15 +221,16 @@ const Command = React.forwardRef((props, forwarded sort() schedule(1, selectFirstItem) } else if (key === 'value') { + // opts is a boolean referring to whether it should NOT be scrolled into view + if (!opts) { + // Scroll the selected item into view + schedule(5, scrollSelectedIntoView) + } if (propsRef.current?.value !== undefined) { // If controlled, just call the callback instead of updating state internally const newValue = (value ?? '') as string propsRef.current.onValueChange?.(newValue) return - // opts is a boolean referring to whether it should NOT be scrolled into view - } else if (!opts) { - // Scroll the selected item into view - schedule(5, scrollSelectedIntoView) } } From 58110a01f990d3b8654d74cfea533c66b5c55f0b Mon Sep 17 00:00:00 2001 From: Wesley Cheung Date: Tue, 30 Jan 2024 04:48:18 +0100 Subject: [PATCH 28/36] deps: react-dialog version (#194) * deps: react-dialog version * use exact --------- Co-authored-by: Paco <34928425+pacocoursey@users.noreply.github.com> --- cmdk/package.json | 2 +- pnpm-lock.yaml | 404 ++++++++++++++++++++++++++++++---------------- 2 files changed, 268 insertions(+), 138 deletions(-) diff --git a/cmdk/package.json b/cmdk/package.json index fc3beca..bc48051 100644 --- a/cmdk/package.json +++ b/cmdk/package.json @@ -26,7 +26,7 @@ "react-dom": "^18.0.0" }, "dependencies": { - "@radix-ui/react-dialog": "1.0.0" + "@radix-ui/react-dialog": "1.0.5" }, "devDependencies": { "@types/react": "18.0.15" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3e6ad9..67eb8c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: cmdk: dependencies: '@radix-ui/react-dialog': - specifier: 1.0.0 - version: 1.0.0(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + specifier: 1.0.5 + version: 1.0.5(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.0.0 version: 18.2.0 @@ -223,6 +223,13 @@ packages: dependencies: regenerator-runtime: 0.13.9 + /@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + /@babel/template@7.18.10: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} @@ -525,11 +532,25 @@ packages: '@jridgewell/trace-mapping': 0.3.14 dev: true + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} @@ -539,6 +560,10 @@ packages: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + /@jridgewell/trace-mapping@0.3.14: resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} dependencies: @@ -546,6 +571,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@motionone/animation@10.13.2: resolution: {integrity: sha512-YGWss58IR2X4lOjW89rv1Q+/Nq/QhfltaggI7i8sZTpKC1yUvM+XYDdvlRpWc6dk8LviMBrddBJAlLdbaqeRmw==} dependencies: @@ -829,7 +861,7 @@ packages: resolution: {integrity: sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==} dependencies: '@babel/runtime': 7.18.9 - csstype: 3.1.0 + csstype: 3.1.2 dev: false /@radix-ui/primitive@0.1.0: @@ -838,10 +870,10 @@ packages: '@babel/runtime': 7.18.9 dev: false - /@radix-ui/primitive@1.0.0: - resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + /@radix-ui/primitive@1.0.1: + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.23.4 dev: false /@radix-ui/react-arrow@0.1.4(react@18.2.0): @@ -863,12 +895,17 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): - resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.23.4 + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -881,40 +918,51 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-context@1.0.0(react@18.2.0): - resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + /@radix-ui/react-context@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.23.4 + '@types/react': 18.0.15 react: 18.2.0 dev: false - /@radix-ui/react-dialog@1.0.0(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} + /@radix-ui/react-dialog@1.0.5(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - aria-hidden: 1.1.3 + '@babel/runtime': 7.23.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 + aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.0.15)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' + react-remove-scroll: 2.5.5(@types/react@18.0.15)(react@18.2.0) dev: false /@radix-ui/react-dismissable-layer@0.1.5(react@18.2.0): @@ -932,18 +980,26 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} + /@radix-ui/react-dismissable-layer@1.0.5(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -957,12 +1013,17 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): - resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.23.4 + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -978,16 +1039,24 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} + /@radix-ui/react-focus-scope@1.0.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1002,13 +1071,18 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-id@1.0.0(react@18.2.0): - resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + /@radix-ui/react-id@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -1069,14 +1143,22 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} + /@radix-ui/react-portal@1.0.4(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-primitive': 1.0.3(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1092,15 +1174,23 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + /@radix-ui/react-presence@1.0.1(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1115,14 +1205,22 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} + /@radix-ui/react-primitive@1.0.3(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-slot': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-slot': 1.0.2(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1137,13 +1235,18 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-slot@1.0.0(react@18.2.0): - resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} + /@radix-ui/react-slot@1.0.2(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -1166,12 +1269,17 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.23.4 + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -1185,13 +1293,18 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): - resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -1205,13 +1318,18 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): - resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) + '@babel/runtime': 7.23.4 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.0.15)(react@18.2.0) + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -1224,12 +1342,17 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: + '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.23.4 + '@types/react': 18.0.15 react: 18.2.0 dev: false @@ -1369,7 +1492,7 @@ packages: /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: - tslib: 2.4.0 + tslib: 2.6.2 dev: false /@types/estree@1.0.5: @@ -1383,8 +1506,8 @@ packages: /@types/node@18.0.4: resolution: {integrity: sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA==} - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} /@types/react-dom@18.0.6: resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==} @@ -1394,12 +1517,12 @@ packages: /@types/react@18.0.15: resolution: {integrity: sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==} dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.0 + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.2 - /@types/scheduler@0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} /@typescript-eslint/parser@5.33.0(eslint@8.21.0)(typescript@4.7.4): resolution: {integrity: sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w==} @@ -1534,8 +1657,8 @@ packages: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true - /anymatch@3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 @@ -1552,6 +1675,13 @@ packages: tslib: 1.14.1 dev: false + /aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.2 + dev: false + /aria-query@4.2.2: resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} engines: {node: '>=6.0'} @@ -1660,7 +1790,7 @@ packages: esbuild: '>=0.17' dependencies: esbuild: 0.19.12 - load-tsconfig: 0.2.3 + load-tsconfig: 0.2.5 dev: true /busboy@1.6.0: @@ -1670,8 +1800,8 @@ packages: streamsearch: 1.1.0 dev: false - /cac@6.7.12: - resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} dev: true @@ -1716,7 +1846,7 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: - anymatch: 3.1.2 + anymatch: 3.1.3 braces: 3.0.2 glob-parent: 5.1.2 is-binary-path: 2.1.0 @@ -1817,8 +1947,8 @@ packages: which: 2.0.2 dev: true - /csstype@3.1.0: - resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -2334,8 +2464,8 @@ packages: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true - /fast-glob@3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2554,8 +2684,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.11 - ignore: 5.2.0 + fast-glob: 3.3.2 + ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -2632,6 +2762,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + dev: true + /immutable@4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} dev: false @@ -2920,8 +3055,8 @@ packages: wrap-ansi: 7.0.0 dev: true - /load-tsconfig@0.2.3: - resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true @@ -3353,8 +3488,8 @@ packages: hasBin: true dev: true - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} dev: true @@ -3456,6 +3591,11 @@ packages: engines: {node: '>=6'} dev: true + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -3474,24 +3614,8 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-remove-scroll-bar@2.3.3(@types/react@18.0.15)(react@18.2.0): - resolution: {integrity: sha512-i9GMNWwpz8XpUpQ6QlevUtFjHGqnPG4Hxs+wlIJntu/xcsZVEpJcIV71K3ZkqNy2q3GfgvkD7y6t/Sv8ofYSbw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.0.15 - react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.0.15)(react@18.2.0) - tslib: 2.4.0 - dev: false - - /react-remove-scroll@2.5.4(@types/react@18.0.15)(react@18.2.0): - resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} + /react-remove-scroll-bar@2.3.4(@types/react@18.0.15)(react@18.2.0): + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3502,11 +3626,8 @@ packages: dependencies: '@types/react': 18.0.15 react: 18.2.0 - react-remove-scroll-bar: 2.3.3(@types/react@18.0.15)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.0.15)(react@18.2.0) - tslib: 2.4.0 - use-callback-ref: 1.3.0(@types/react@18.0.15)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.0.15)(react@18.2.0) + tslib: 2.6.2 dev: false /react-remove-scroll@2.5.5(@types/react@18.0.15)(react@18.2.0): @@ -3521,9 +3642,9 @@ packages: dependencies: '@types/react': 18.0.15 react: 18.2.0 - react-remove-scroll-bar: 2.3.3(@types/react@18.0.15)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.0.15)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.0.15)(react@18.2.0) - tslib: 2.4.0 + tslib: 2.6.2 use-callback-ref: 1.3.0(@types/react@18.0.15)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.0.15)(react@18.2.0) dev: false @@ -3561,6 +3682,10 @@ packages: /regenerator-runtime@0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + /regexp.prototype.flags@1.4.3: resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} @@ -3889,16 +4014,17 @@ packages: react: 18.2.0 dev: false - /sucrase@3.25.0: - resolution: {integrity: sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ==} + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} engines: {node: '>=8'} hasBin: true dependencies: + '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 mz: 2.7.0 - pirates: 4.0.5 + pirates: 4.0.6 ts-interface-checker: 0.1.13 dev: true @@ -3960,7 +4086,7 @@ packages: /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: - punycode: 2.1.1 + punycode: 2.3.1 dev: true /tree-kill@1.2.2: @@ -3987,6 +4113,10 @@ packages: /tslib@2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + /tsup@8.0.1(typescript@4.6.4): resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} engines: {node: '>=18'} @@ -4007,7 +4137,7 @@ packages: optional: true dependencies: bundle-require: 4.0.2(esbuild@0.19.12) - cac: 6.7.12 + cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 esbuild: 0.19.12 @@ -4018,7 +4148,7 @@ packages: resolve-from: 5.0.0 rollup: 4.9.6 source-map: 0.8.0-beta.0 - sucrase: 3.25.0 + sucrase: 3.34.0 tree-kill: 1.2.2 typescript: 4.6.4 transitivePeerDependencies: From f4049e635b75b2ae66d06354c33d0be378c64ada Mon Sep 17 00:00:00 2001 From: Peng Xiao Date: Tue, 30 Jan 2024 11:48:43 +0800 Subject: [PATCH 29/36] fix: items sort by not working (#182) --- cmdk/src/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 75aa8f9..96280b8 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -366,8 +366,8 @@ const Command = React.forwardRef((props, forwarded // Sort the items getValidItems() .sort((a, b) => { - const valueA = a.getAttribute(VALUE_ATTR) - const valueB = b.getAttribute(VALUE_ATTR) + const valueA = a.getAttribute('id') + const valueB = b.getAttribute('id') return (scores.get(valueB) ?? 0) - (scores.get(valueA) ?? 0) }) .forEach((item) => { From eb404c08b8172598374097154abd6c821bd43d5d Mon Sep 17 00:00:00 2001 From: Itai Keren Date: Tue, 30 Jan 2024 06:17:00 +0200 Subject: [PATCH 30/36] feat: add keywords prop to the item component (#158) add keywords prop to the item component --- README.md | 27 ++++++++++++++++++++++ cmdk/src/command-score.ts | 3 ++- cmdk/src/index.tsx | 36 +++++++++++++++++------------ test/basic.test.ts | 9 ++++++++ test/pages/index.tsx | 2 +- website/components/cmdk/raycast.tsx | 22 ++++++++++-------- 6 files changed, 72 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 59e1afe..7d59b77 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,18 @@ You can provide a custom `filter` function that is called to rank each item. Bot /> ``` +A third argument, `keywords`, can also be provided to the filter function. Keywords act as aliases for the item value, and can also affect the rank of the item. Keywords are normalized as lowercase and trimmed. + +```tsx + { + const extendValue = value + ' ' + keywords.join(' ') + if (extendValue.includes(search)) return 1 + return 0 + }} +/> +``` + Or disable filtering and sorting entirely: ```tsx @@ -212,6 +224,21 @@ Item that becomes active on pointer enter. You should provide a unique `value` f ``` +You can also provide a `keywords` prop to help with filtering. Keywords are normalized as lowercase and trimmed. + +```tsx +Apple +``` + +```tsx + console.log('Selected', value)} + // Value is implicity "apple" because of the provided text content +> + Apple + +``` + You can force an item to always render, regardless of filtering, by passing the `forceMount` prop. ### Group `[cmdk-group]` `[hidden?]` diff --git a/cmdk/src/command-score.ts b/cmdk/src/command-score.ts index f79cccc..4254ae8 100644 --- a/cmdk/src/command-score.ts +++ b/cmdk/src/command-score.ts @@ -152,10 +152,11 @@ function formatInput(string) { return string.toLowerCase().replace(COUNT_SPACE_REGEXP, ' ') } -export function commandScore(string: string, abbreviation: string): number { +export function commandScore(string: string, abbreviation: string, aliases: string[]): number { /* NOTE: * in the original, we used to do the lower-casing on each recursive call, but this meant that toLowerCase() * was the dominating cost in the algorithm, passing both is a little ugly, but considerably faster. */ + string = aliases && aliases.length > 0 ? `${string + ' ' + aliases.join(' ')}` : string; return commandScoreInner(string, abbreviation, formatInput(string), formatInput(abbreviation), 0, 0, {}) } diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 96280b8..9f504e2 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -36,6 +36,8 @@ type ItemProps = Children & * If no value is provided, it will be inferred from `children` or the rendered `textContent`. If your `textContent` changes between renders, you _must_ provide a stable, unique `value`. */ value?: string + /** Optional keywords to match against when filtering. */ + keywords?: string[] /** Whether this item is forcibly rendered regardless of filtering. */ forceMount?: boolean } @@ -74,7 +76,7 @@ type CommandProps = Children & * It should return a number between 0 and 1, with 1 being the best match and 0 being hidden entirely. * By default, uses the `command-score` library. */ - filter?: (value: string, search: string) => number + filter?: (value: string, search: string, keywords?: string[]) => number /** * Optional default item value when it is initially rendered. */ @@ -102,7 +104,7 @@ type CommandProps = Children & } type Context = { - value: (id: string, value: string) => void + value: (id: string, value: string, keywords?: string[]) => void item: (id: string, groupId: string) => () => void group: (id: string) => () => void filter: () => boolean @@ -138,7 +140,7 @@ const ITEM_SELECTOR = `[cmdk-item=""]` const VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled="true"])` const SELECT_EVENT = `cmdk-item-select` const VALUE_ATTR = `data-value` -const defaultFilter: CommandProps['filter'] = (value, search) => commandScore(value, search) +const defaultFilter: CommandProps['filter'] = (value, search, keywords) => commandScore(value, search, keywords) // @ts-ignore const CommandContext = React.createContext(undefined) @@ -167,7 +169,7 @@ const Command = React.forwardRef((props, forwarded })) const allItems = useLazyRef>(() => new Set()) // [...itemIds] const allGroups = useLazyRef>>(() => new Map()) // groupId → [...itemIds] - const ids = useLazyRef>(() => new Map()) // id → value + const ids = useLazyRef>(() => new Map()) // id → { value, keywords } const listeners = useLazyRef void>>(() => new Set()) // [...rerenders] const propsRef = useAsRef(props) const { @@ -245,11 +247,11 @@ const Command = React.forwardRef((props, forwarded const context: Context = React.useMemo( () => ({ - // Keep id → value mapping up-to-date - value: (id, value) => { - if (value !== ids.current.get(id)) { - ids.current.set(id, value) - state.current.filtered.items.set(id, score(value)) + // Keep id → {value, keywords} mapping up-to-date + value: (id, value, keywords) => { + if (value !== ids.current.get(id)?.value) { + ids.current.set(id, { value, keywords }) + state.current.filtered.items.set(id, score(value, keywords)) schedule(2, () => { sort() store.emit() @@ -325,9 +327,9 @@ const Command = React.forwardRef((props, forwarded [], ) - function score(value: string) { + function score(value: string, keywords?: string[]) { const filter = propsRef.current?.filter ?? defaultFilter - return value ? filter(value, state.current.search) : 0 + return value ? filter(value, state.current.search, keywords) : 0 } /** Sorts items by score, and groups by highest item score. */ @@ -412,8 +414,9 @@ const Command = React.forwardRef((props, forwarded // Check which items should be included for (const id of allItems.current) { - const value = ids.current.get(id) - const rank = score(value) + const value = ids.current.get(id)?.value ?? '' + const keywords = ids.current.get(id)?.keywords ?? [] + const rank = score(value, keywords) state.current.filtered.items.set(id, rank) if (rank > 0) itemCount++ } @@ -630,7 +633,7 @@ const Item = React.forwardRef((props, forwardedRef) = } }, [forceMount]) - const value = useValue(id, ref, [props.value, props.children, ref]) + const value = useValue(id, ref, [props.value, props.children, ref], props.keywords) const store = useStore() const selected = useCmdk((state) => state.value && state.value === value.current) @@ -983,6 +986,7 @@ function useValue( id: string, ref: React.RefObject, deps: (string | React.ReactNode | React.RefObject)[], + aliases: string[] = [] ) { const valueRef = React.useRef() const context = useCommand() @@ -1003,7 +1007,9 @@ function useValue( } })() - context.value(id, value) + const keywords = (() => aliases.map((alias) => alias.trim().toLowerCase()))() + + context.value(id, value, keywords) ref.current?.setAttribute(VALUE_ATTR, value) valueRef.current = value }) diff --git a/test/basic.test.ts b/test/basic.test.ts index ae32860..eac7cb7 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -47,6 +47,15 @@ test.describe('basic behavior', async () => { await expect(remains).toHaveCount(1) }) + test('items filter when searching by keywords', async ({ page }) => { + const input = page.locator(`[cmdk-input]`) + await input.type('key') + const removed = page.locator(`[cmdk-item][data-value="xxx"]`) + const remains = page.locator(`[cmdk-item][data-value="item"]`) + await expect(removed).toHaveCount(0) + await expect(remains).toHaveCount(1) + }) + test('empty component renders when there are no results', async ({ page }) => { const input = page.locator('[cmdk-input]') await input.type('z') diff --git a/test/pages/index.tsx b/test/pages/index.tsx index 2ea7fc2..fb9e94b 100644 --- a/test/pages/index.tsx +++ b/test/pages/index.tsx @@ -7,7 +7,7 @@ const Page = () => { No results. - console.log('Item selected')} className="item"> + console.log('Item selected')} className="item"> Item diff --git a/website/components/cmdk/raycast.tsx b/website/components/cmdk/raycast.tsx index c57656d..50c3bcf 100644 --- a/website/components/cmdk/raycast.tsx +++ b/website/components/cmdk/raycast.tsx @@ -23,7 +23,7 @@ export function RaycastCMDK() { No results found. - + Linear - + Figma - + Slack - + YouTube - + @@ -60,17 +60,17 @@ export function RaycastCMDK() { - + Clipboard History - + Import Extension - + Manage Extensions @@ -97,14 +97,16 @@ export function RaycastCMDK() { function Item({ children, value, + keywords, isCommand = false, }: { children: React.ReactNode - value: string + value: string, + keywords?: string[] isCommand?: boolean }) { return ( - {}}> + {}}> {children} {isCommand ? 'Command' : 'Application'} From 071ee2d15014fb9508e1c604ece620159baba424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Magalh=C3=A3es?= Date: Tue, 30 Jan 2024 01:19:22 -0300 Subject: [PATCH 31/36] feat: add asChild prop (#138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add asChild prop * refactor: move logic to a function * chore: cut comment * chore: add primitive dep and remove slot dep * build: update pnpm-lock --------- Co-authored-by: João Pedro Magalhães Co-authored-by: Paco <34928425+pacocoursey@users.noreply.github.com> --- cmdk/package.json | 3 +- cmdk/src/index.tsx | 81 +++++++++++++++++++++++++++++++--------------- pnpm-lock.yaml | 3 ++ 3 files changed, 60 insertions(+), 27 deletions(-) diff --git a/cmdk/package.json b/cmdk/package.json index bc48051..7646138 100644 --- a/cmdk/package.json +++ b/cmdk/package.json @@ -26,7 +26,8 @@ "react-dom": "^18.0.0" }, "dependencies": { - "@radix-ui/react-dialog": "1.0.5" + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3" }, "devDependencies": { "@types/react": "18.0.15" diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 9f504e2..9b2ca80 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -1,15 +1,17 @@ import * as RadixDialog from '@radix-ui/react-dialog' import * as React from 'react' import { commandScore } from './command-score' +import { Primitive } from '@radix-ui/react-primitive' type Children = { children?: React.ReactNode } -type DivProps = React.HTMLAttributes +type DivProps = React.ComponentPropsWithoutRef type LoadingProps = Children & DivProps & { /** Estimated progress of loading asynchronous options. */ progress?: number } + type EmptyProps = Children & DivProps & {} type SeparatorProps = DivProps & { /** Whether this separator should always be rendered. Useful if you disable automatic filtering. */ @@ -50,7 +52,7 @@ type GroupProps = Children & /** Whether this group is forcibly rendered regardless of filtering. */ forceMount?: boolean } -type InputProps = Omit, 'value' | 'onChange' | 'type'> & { +type InputProps = Omit, 'value' | 'onChange' | 'type'> & { /** * Optional controlled state for the value of the search input. */ @@ -536,7 +538,7 @@ const Command = React.forwardRef((props, forwarded } return ( -
((props, forwarded > {label} - - {children} - -
+ {SlottableWithNestedChildren(props, (child) => ( + + {child} + + ))} + ) }) @@ -662,7 +666,7 @@ const Item = React.forwardRef((props, forwardedRef) = const { disabled, value: _, onSelect: __, forceMount: ___, ...etc } = props return ( -
((props, forwardedRef) = onClick={disabled ? undefined : onSelect} > {props.children} -
+ ) }) @@ -702,10 +706,9 @@ const Group = React.forwardRef((props, forwardedRef) useValue(id, ref, [props.value, props.heading, headingRef]) const contextValue = React.useMemo(() => ({ id, forceMount }), [forceMount]) - const inner = {children} return ( -
((props, forwardedRef) {heading}
)} -
- {inner} -
-
+ {SlottableWithNestedChildren(props, (child) => ( +
+ {child} +
+ ))} + ) }) @@ -734,7 +739,7 @@ const Separator = React.forwardRef((props, forwa const render = useCmdk((state) => !state.search) if (!alwaysRender && !render) return null - return
+ return }) /** @@ -761,7 +766,7 @@ const Input = React.forwardRef((props, forwardedRe }, [props.value]) return ( - ((props, forwardedRef) = }, []) return ( -
((props, forwardedRef) = id={context.listId} aria-labelledby={context.inputId} > -
- {children} -
-
+ {SlottableWithNestedChildren(props, (child) => ( +
+ {child} +
+ ))} +
) }) @@ -863,7 +870,7 @@ const Empty = React.forwardRef((props, forwardedRef) }, []) if (isFirstRender.current || !render) return null - return
+ return }) /** @@ -873,7 +880,7 @@ const Loading = React.forwardRef((props, forwarded const { progress, children, ...etc } = props return ( -
((props, forwarded aria-valuemax={100} aria-label="Loading..." > -
{children}
-
+ {SlottableWithNestedChildren(props, (child) => ( +
{child}
+ ))} +
) }) @@ -1033,6 +1042,26 @@ const useScheduleLayoutEffect = () => { } } +function renderChildren(children: React.ReactElement) { + const childrenType = children.type as any + // The children is a component + if (typeof childrenType === 'function') return childrenType(children.props) + // The children is a component with `forwardRef` + else if ('render' in childrenType) return childrenType.render(children.props) + // It's a string, boolean, etc. + else return children +} + +function SlottableWithNestedChildren( + { asChild, children }: { asChild?: boolean; children?: React.ReactNode }, + render: (child: React.ReactNode) => JSX.Element, +) { + if (asChild && React.isValidElement(children)) { + return React.cloneElement(renderChildren(children), { ref: (children as any).ref }, render(children.props.children)) + } + return render(children) +} + const srOnlyStyles = { position: 'absolute', width: '1px', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67eb8c6..a82566f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: '@radix-ui/react-dialog': specifier: 1.0.5 version: 1.0.5(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': + specifier: 1.0.3 + version: 1.0.3(@types/react@18.0.15)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.0.0 version: 18.2.0 From c7fd231773c36383f11d73464818107814cb02a9 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:22:21 -0800 Subject: [PATCH 32/36] lint format --- cmdk/src/command-score.ts | 2 +- cmdk/src/index.tsx | 4 ++-- test/pages/index.tsx | 2 +- website/components/cmdk/raycast.tsx | 18 +++++++++--------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cmdk/src/command-score.ts b/cmdk/src/command-score.ts index 4254ae8..bd46cc8 100644 --- a/cmdk/src/command-score.ts +++ b/cmdk/src/command-score.ts @@ -157,6 +157,6 @@ export function commandScore(string: string, abbreviation: string, aliases: stri * in the original, we used to do the lower-casing on each recursive call, but this meant that toLowerCase() * was the dominating cost in the algorithm, passing both is a little ugly, but considerably faster. */ - string = aliases && aliases.length > 0 ? `${string + ' ' + aliases.join(' ')}` : string; + string = aliases && aliases.length > 0 ? `${string + ' ' + aliases.join(' ')}` : string return commandScoreInner(string, abbreviation, formatInput(string), formatInput(abbreviation), 0, 0, {}) } diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 9b2ca80..6f04095 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -171,7 +171,7 @@ const Command = React.forwardRef((props, forwarded })) const allItems = useLazyRef>(() => new Set()) // [...itemIds] const allGroups = useLazyRef>>(() => new Map()) // groupId → [...itemIds] - const ids = useLazyRef>(() => new Map()) // id → { value, keywords } + const ids = useLazyRef>(() => new Map()) // id → { value, keywords } const listeners = useLazyRef void>>(() => new Set()) // [...rerenders] const propsRef = useAsRef(props) const { @@ -995,7 +995,7 @@ function useValue( id: string, ref: React.RefObject, deps: (string | React.ReactNode | React.RefObject)[], - aliases: string[] = [] + aliases: string[] = [], ) { const valueRef = React.useRef() const context = useCommand() diff --git a/test/pages/index.tsx b/test/pages/index.tsx index fb9e94b..49235b2 100644 --- a/test/pages/index.tsx +++ b/test/pages/index.tsx @@ -7,7 +7,7 @@ const Page = () => { No results. - console.log('Item selected')} className="item"> + console.log('Item selected')} className="item"> Item diff --git a/website/components/cmdk/raycast.tsx b/website/components/cmdk/raycast.tsx index 50c3bcf..a769715 100644 --- a/website/components/cmdk/raycast.tsx +++ b/website/components/cmdk/raycast.tsx @@ -23,7 +23,7 @@ export function RaycastCMDK() { No results found. - + Linear - + Figma - + Slack - + YouTube - + @@ -60,17 +60,17 @@ export function RaycastCMDK() { - + Clipboard History - + Import Extension - + Manage Extensions @@ -101,7 +101,7 @@ function Item({ isCommand = false, }: { children: React.ReactNode - value: string, + value: string keywords?: string[] isCommand?: boolean }) { From 17243009c2fbfcf1ec3c4a14647770c9d64b5e82 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Tue, 30 Jan 2024 05:23:26 +0100 Subject: [PATCH 33/36] Fix suggestions list and loading progressbar labels (#204) * Fix suggestions list label. * Fix loading progressbar label. --- cmdk/src/index.tsx | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 6f04095..626d57c 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -10,6 +10,10 @@ type LoadingProps = Children & DivProps & { /** Estimated progress of loading asynchronous options. */ progress?: number + /** + * Accessible label for this loading progressbar. Not shown visibly. + */ + label?: string } type EmptyProps = Children & DivProps & {} @@ -26,7 +30,13 @@ type DialogProps = RadixDialog.DialogProps & /** Provide a custom element the Dialog should portal into. */ container?: HTMLElement } -type ListProps = Children & DivProps & {} +type ListProps = Children & + DivProps & { + /** + * Accessible label for this List of suggestions. Not shown visibly. + */ + label?: string + } type ItemProps = Children & Omit & { /** Whether this item is currently disabled. */ @@ -798,7 +808,7 @@ const Input = React.forwardRef((props, forwardedRe * Use the `--cmdk-list-height` CSS variable to animate height based on the number of results. */ const List = React.forwardRef((props, forwardedRef) => { - const { children, ...etc } = props + const { children, label = "Suggestions", ...etc } = props const ref = React.useRef(null) const height = React.useRef(null) const context = useCommand() @@ -828,9 +838,8 @@ const List = React.forwardRef((props, forwardedRef) = {...etc} cmdk-list="" role="listbox" - aria-label="Suggestions" + aria-label={label} id={context.listId} - aria-labelledby={context.inputId} > {SlottableWithNestedChildren(props, (child) => (
@@ -877,7 +886,7 @@ const Empty = React.forwardRef((props, forwardedRef) * You should conditionally render this with `progress` while loading asynchronous items. */ const Loading = React.forwardRef((props, forwardedRef) => { - const { progress, children, ...etc } = props + const { progress, children, label = "Loading...", ...etc } = props return ( ((props, forwarded aria-valuenow={progress} aria-valuemin={0} aria-valuemax={100} - aria-label="Loading..." + aria-label={label} > {SlottableWithNestedChildren(props, (child) => (
{child}
From 1232b1c5cf3df524b072b6ddaae0ef14c83d5766 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:24:48 -0800 Subject: [PATCH 34/36] remove outline: none --- cmdk/src/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index d6a9a6f..44f1845 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -477,7 +477,6 @@ const Command = React.forwardRef((props, forwarded ref={mergeRefs([ref, forwardedRef])} tabIndex={-1} {...etc} - style={{ outline: 'none', ...etc.style }} cmdk-root="" onKeyDown={(e) => { etc.onKeyDown?.(e) From 144c69ce5326e793792bb41e445263925d2918c9 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:28:26 -0800 Subject: [PATCH 35/36] add outline: none to website --- website/styles/cmdk/framer.scss | 1 + website/styles/cmdk/linear.scss | 1 + website/styles/cmdk/raycast.scss | 1 + website/styles/cmdk/vercel.scss | 1 + 4 files changed, 4 insertions(+) diff --git a/website/styles/cmdk/framer.scss b/website/styles/cmdk/framer.scss index 639007c..f1717b4 100644 --- a/website/styles/cmdk/framer.scss +++ b/website/styles/cmdk/framer.scss @@ -9,6 +9,7 @@ font-family: var(--font-sans); border: 1px solid var(--gray6); box-shadow: var(--cmdk-shadow); + outline: none; .dark & { background: var(--gray2); diff --git a/website/styles/cmdk/linear.scss b/website/styles/cmdk/linear.scss index f344f87..9e8c689 100644 --- a/website/styles/cmdk/linear.scss +++ b/website/styles/cmdk/linear.scss @@ -8,6 +8,7 @@ padding: 0; font-family: var(--font-sans); box-shadow: var(--cmdk-shadow); + outline: none; .dark & { background: linear-gradient(136.61deg, rgb(39, 40, 43) 13.72%, rgb(45, 46, 49) 74.3%); diff --git a/website/styles/cmdk/raycast.scss b/website/styles/cmdk/raycast.scss index b69a411..09f0fd5 100644 --- a/website/styles/cmdk/raycast.scss +++ b/website/styles/cmdk/raycast.scss @@ -9,6 +9,7 @@ box-shadow: var(--cmdk-shadow); border: 1px solid var(--gray6); position: relative; + outline: none; .dark & { background: var(--gray2); diff --git a/website/styles/cmdk/vercel.scss b/website/styles/cmdk/vercel.scss index 78baf0f..3ce2265 100644 --- a/website/styles/cmdk/vercel.scss +++ b/website/styles/cmdk/vercel.scss @@ -10,6 +10,7 @@ border: 1px solid var(--gray6); box-shadow: var(--cmdk-shadow); transition: transform 100ms ease; + outline: none; .dark & { background: rgba(22, 22, 22, 0.7); From 26df6ac97a10d10ace1dcecee62d92f6ee905900 Mon Sep 17 00:00:00 2001 From: Paco <34928425+pacocoursey@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:29:30 -0800 Subject: [PATCH 36/36] format --- cmdk/src/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmdk/src/index.tsx b/cmdk/src/index.tsx index 9f3342d..59008a1 100644 --- a/cmdk/src/index.tsx +++ b/cmdk/src/index.tsx @@ -809,7 +809,7 @@ const Input = React.forwardRef((props, forwardedRe * Use the `--cmdk-list-height` CSS variable to animate height based on the number of results. */ const List = React.forwardRef((props, forwardedRef) => { - const { children, label = "Suggestions", ...etc } = props + const { children, label = 'Suggestions', ...etc } = props const ref = React.useRef(null) const height = React.useRef(null) const context = useCommand() @@ -887,7 +887,7 @@ const Empty = React.forwardRef((props, forwardedRef) * You should conditionally render this with `progress` while loading asynchronous items. */ const Loading = React.forwardRef((props, forwardedRef) => { - const { progress, children, label = "Loading...", ...etc } = props + const { progress, children, label = 'Loading...', ...etc } = props return (