diff --git a/web/package.json b/web/package.json index ea757f5c..e4ff5676 100644 --- a/web/package.json +++ b/web/package.json @@ -10,6 +10,7 @@ "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", "@mui/joy": "^5.0.0-alpha.67", + "@radix-ui/react-tooltip": "^1.0.5", "@reduxjs/toolkit": "^1.8.1", "axios": "^0.27.2", "copy-to-clipboard": "^3.3.2", diff --git a/web/src/components/CreateShortcutDialog.tsx b/web/src/components/CreateShortcutDialog.tsx index 90afcc9c..eb2861a3 100644 --- a/web/src/components/CreateShortcutDialog.tsx +++ b/web/src/components/CreateShortcutDialog.tsx @@ -7,7 +7,7 @@ import { filterConsts, getDefaultFilter, relationConsts } from "@/helpers/filter import useLoading from "@/hooks/useLoading"; import Icon from "./Icon"; import { generateDialog } from "./Dialog"; -import Selector from "./base/Selector"; +import Selector from "./kit/Selector"; import "@/less/create-shortcut-dialog.less"; interface Props extends DialogProps { diff --git a/web/src/components/Memo.tsx b/web/src/components/Memo.tsx index 32bd578d..f4a2dcf9 100644 --- a/web/src/components/Memo.tsx +++ b/web/src/components/Memo.tsx @@ -5,6 +5,8 @@ import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { Link, useNavigate } from "react-router-dom"; import { useEditorStore, useFilterStore, useMemoStore, useUserStore } from "@/store/module"; +import Tooltip from "./kit/Tooltip"; +import { showCommonDialog } from "./Dialog/CommonDialog"; import Icon from "./Icon"; import MemoContent from "./MemoContent"; import MemoResources from "./MemoResources"; @@ -97,6 +99,18 @@ const Memo: React.FC = (props: Props) => { } }; + const handleDeleteMemoClick = async () => { + showCommonDialog({ + title: "Delete memo", + content: "Are you sure to delete this memo?", + style: "warning", + dialogName: "delete-memo-dialog", + onConfirm: async () => { + await memoStore.deleteMemoById(memo.id); + }, + }); + }; + const handleGenerateMemoImageBtnClick = () => { showShareMemo(memo); }; @@ -189,7 +203,6 @@ const Memo: React.FC = (props: Props) => { return (
- {memo.pinned &&
}
@@ -200,35 +213,45 @@ const Memo: React.FC = (props: Props) => { @{memo.creatorName} )} - {memo.visibility !== "PRIVATE" && !isVisitorMode && ( - <> - / - handleMemoVisibilityClick(memo.visibility)}> - {t(`memo.visibility.${memo.visibility.toLowerCase()}`)} - - - )}
{!isVisitorMode && ( -
+
+ {memo.visibility !== "PRIVATE" && ( + +
handleMemoVisibilityClick(memo.visibility)}> + {memo.visibility === "PUBLIC" ? ( + + ) : ( + + )} +
+
+ )} + {memo.pinned && }
-
-
- - {memo.pinned ? t("common.unpin") : t("common.pin")} -
-
- - {t("common.edit")} -
-
- - {t("common.share")} -
+
+ +
+ {memo.pinned ? ( + + ) : ( + + )} +
+
+ + + + + +
{t("memo.copy-link")} @@ -239,9 +262,12 @@ const Memo: React.FC = (props: Props) => { {t("memo.embed")} - + {t("common.archive")} + + {t("common.delete")} +
diff --git a/web/src/components/MemoEditor.tsx b/web/src/components/MemoEditor.tsx index 8ad6028f..dd8dffee 100644 --- a/web/src/components/MemoEditor.tsx +++ b/web/src/components/MemoEditor.tsx @@ -8,7 +8,7 @@ import { TAB_SPACE_WIDTH, UNKNOWN_ID, VISIBILITY_SELECTOR_ITEMS } from "@/helper import { useEditorStore, useGlobalStore, useFilterStore, useMemoStore, useResourceStore, useTagStore, useUserStore } from "@/store/module"; import * as storage from "@/helpers/storage"; import Icon from "./Icon"; -import Selector from "./base/Selector"; +import Selector from "./kit/Selector"; import Editor, { EditorRefActions } from "./Editor/Editor"; import ResourceIcon from "./ResourceIcon"; import showResourcesSelectorDialog from "./ResourcesSelectorDialog"; diff --git a/web/src/components/MemoResources.tsx b/web/src/components/MemoResources.tsx index 316d8469..4bef8ec9 100644 --- a/web/src/components/MemoResources.tsx +++ b/web/src/components/MemoResources.tsx @@ -1,6 +1,6 @@ import { absolutifyLink } from "@/helpers/utils"; import { getResourceUrl } from "@/utils/resource"; -import SquareDiv from "./base/SquareDiv"; +import SquareDiv from "./kit/SquareDiv"; import showPreviewImageDialog from "./PreviewImageDialog"; import MemoResource from "./MemoResource"; import "@/less/memo-resources.less"; diff --git a/web/src/components/ResourceItemDropdown.tsx b/web/src/components/ResourceItemDropdown.tsx index 05a2e2a9..1fe2da3c 100644 --- a/web/src/components/ResourceItemDropdown.tsx +++ b/web/src/components/ResourceItemDropdown.tsx @@ -4,7 +4,7 @@ import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { useResourceStore } from "@/store/module"; import { getResourceUrl } from "@/utils/resource"; -import Dropdown from "./base/Dropdown"; +import Dropdown from "./kit/Dropdown"; import Icon from "./Icon"; import { showCommonDialog } from "./Dialog/CommonDialog"; import showChangeResourceFilenameDialog from "./ChangeResourceFilenameDialog"; diff --git a/web/src/components/Settings/MemberSection.tsx b/web/src/components/Settings/MemberSection.tsx index 19aab8a4..39fb76c4 100644 --- a/web/src/components/Settings/MemberSection.tsx +++ b/web/src/components/Settings/MemberSection.tsx @@ -3,7 +3,7 @@ import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { useUserStore } from "@/store/module"; import * as api from "@/helpers/api"; -import Dropdown from "../base/Dropdown"; +import Dropdown from "../kit/Dropdown"; import { showCommonDialog } from "../Dialog/CommonDialog"; import showChangeMemberPasswordDialog from "../ChangeMemberPasswordDialog"; import "@/less/settings/member-section.less"; diff --git a/web/src/components/Settings/SSOSection.tsx b/web/src/components/Settings/SSOSection.tsx index e7583661..43f21c72 100644 --- a/web/src/components/Settings/SSOSection.tsx +++ b/web/src/components/Settings/SSOSection.tsx @@ -3,7 +3,7 @@ import { toast } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import * as api from "@/helpers/api"; import showCreateIdentityProviderDialog from "../CreateIdentityProviderDialog"; -import Dropdown from "../base/Dropdown"; +import Dropdown from "../kit/Dropdown"; import { showCommonDialog } from "../Dialog/CommonDialog"; const SSOSection = () => { diff --git a/web/src/components/Settings/StorageSection.tsx b/web/src/components/Settings/StorageSection.tsx index 1a389f75..80281b80 100644 --- a/web/src/components/Settings/StorageSection.tsx +++ b/web/src/components/Settings/StorageSection.tsx @@ -6,7 +6,7 @@ import { useGlobalStore } from "@/store/module"; import * as api from "@/helpers/api"; import showCreateStorageServiceDialog from "../CreateStorageServiceDialog"; import showUpdateLocalStorageDialog from "../UpdateLocalStorageDialog"; -import Dropdown from "../base/Dropdown"; +import Dropdown from "../kit/Dropdown"; import { showCommonDialog } from "../Dialog/CommonDialog"; const StorageSection = () => { diff --git a/web/src/components/UserBanner.tsx b/web/src/components/UserBanner.tsx index 8e9ab3e1..1f422d25 100644 --- a/web/src/components/UserBanner.tsx +++ b/web/src/components/UserBanner.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { useUserStore } from "@/store/module"; -import Dropdown from "./base/Dropdown"; +import Dropdown from "./kit/Dropdown"; import Icon from "./Icon"; import UserAvatar from "./UserAvatar"; import showAboutSiteDialog from "./AboutSiteDialog"; diff --git a/web/src/components/base/DatePicker.tsx b/web/src/components/kit/DatePicker.tsx similarity index 100% rename from web/src/components/base/DatePicker.tsx rename to web/src/components/kit/DatePicker.tsx diff --git a/web/src/components/base/Dropdown.tsx b/web/src/components/kit/Dropdown.tsx similarity index 100% rename from web/src/components/base/Dropdown.tsx rename to web/src/components/kit/Dropdown.tsx diff --git a/web/src/components/base/README.md b/web/src/components/kit/README.md similarity index 100% rename from web/src/components/base/README.md rename to web/src/components/kit/README.md diff --git a/web/src/components/base/Selector.tsx b/web/src/components/kit/Selector.tsx similarity index 100% rename from web/src/components/base/Selector.tsx rename to web/src/components/kit/Selector.tsx diff --git a/web/src/components/base/SquareDiv.tsx b/web/src/components/kit/SquareDiv.tsx similarity index 100% rename from web/src/components/base/SquareDiv.tsx rename to web/src/components/kit/SquareDiv.tsx diff --git a/web/src/components/kit/Tooltip.tsx b/web/src/components/kit/Tooltip.tsx new file mode 100644 index 00000000..c4e73d83 --- /dev/null +++ b/web/src/components/kit/Tooltip.tsx @@ -0,0 +1,32 @@ +import * as TooltipUI from "@radix-ui/react-tooltip"; + +type Side = "top" | "right" | "bottom" | "left"; + +interface Props { + title: string; + side: Side; + children: React.ReactNode; +} + +const Tooltip = (props: Props) => { + const { title, side, children } = props; + + return ( + + + {children} + + + {title} + + + + + ); +}; + +export default Tooltip; diff --git a/web/src/less/memo.less b/web/src/less/memo.less index 86fa8bcd..0ed0166a 100644 --- a/web/src/less/memo.less +++ b/web/src/less/memo.less @@ -9,16 +9,6 @@ @apply border-gray-200 dark:border-zinc-600; } - > .corner-container { - @apply absolute top-0 right-0 z-1; - - &::after { - @apply absolute top-0 right-0 border-transparent border-t-green-600 border-r-green-600 rounded-tr-md; - content: ""; - border-width: 6px; - } - } - > .memo-top-wrapper { @apply flex flex-row justify-between items-center w-full h-6 mb-1; @@ -91,10 +81,10 @@ } .btn { - @apply flex flex-row justify-center items-center px-2 leading-6 text-sm rounded hover:bg-gray-200 dark:hover:bg-zinc-600; + @apply flex flex-row justify-center items-center leading-6 text-sm rounded hover:bg-gray-200 dark:hover:bg-zinc-600; &.more-action-btn { - @apply w-8 -mr-2 opacity-60 cursor-default hover:bg-transparent; + @apply w-auto opacity-60 cursor-default hover:bg-transparent; > .icon-img { @apply w-4 h-auto dark:text-gray-300; diff --git a/web/src/pages/DailyReview.tsx b/web/src/pages/DailyReview.tsx index 09b42b57..5f1e408c 100644 --- a/web/src/pages/DailyReview.tsx +++ b/web/src/pages/DailyReview.tsx @@ -11,7 +11,7 @@ import useToggle from "@/hooks/useToggle"; import toImage from "@/labs/html2image"; import showPreviewImageDialog from "@/components/PreviewImageDialog"; import Icon from "@/components/Icon"; -import DatePicker from "@/components/base/DatePicker"; +import DatePicker from "@/components/kit/DatePicker"; import DailyMemo from "@/components/DailyMemo"; const DailyReview = () => { diff --git a/web/src/pages/ResourcesDashboard.tsx b/web/src/pages/ResourcesDashboard.tsx index c4146e4c..b230c58e 100644 --- a/web/src/pages/ResourcesDashboard.tsx +++ b/web/src/pages/ResourcesDashboard.tsx @@ -9,7 +9,7 @@ import Icon from "@/components/Icon"; import ResourceCard from "@/components/ResourceCard"; import ResourceSearchBar from "@/components/ResourceSearchBar"; import MobileHeader from "@/components/MobileHeader"; -import Dropdown from "@/components/base/Dropdown"; +import Dropdown from "@/components/kit/Dropdown"; import ResourceItem from "@/components/ResourceItem"; import { showCommonDialog } from "@/components/Dialog/CommonDialog"; import showCreateResourceDialog from "@/components/CreateResourceDialog"; diff --git a/web/yarn.lock b/web/yarn.lock index 8086c1d5..10cccc4c 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -47,7 +47,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.19.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.19.4": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== @@ -303,6 +303,26 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@floating-ui/core@^0.7.3": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-0.7.3.tgz#d274116678ffae87f6b60e90f88cc4083eefab86" + integrity sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg== + +"@floating-ui/dom@^0.5.3": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-0.5.4.tgz#4eae73f78bcd4bd553ae2ade30e6f1f9c73fe3f1" + integrity sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg== + dependencies: + "@floating-ui/core" "^0.7.3" + +"@floating-ui/react-dom@0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-0.7.2.tgz#0bf4ceccb777a140fc535c87eb5d6241c8e89864" + integrity sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg== + dependencies: + "@floating-ui/dom" "^0.5.3" + use-isomorphic-layout-effect "^1.1.1" + "@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" @@ -472,6 +492,185 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== +"@radix-ui/primitive@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.0.tgz#e1d8ef30b10ea10e69c76e896f608d9276352253" + integrity sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-arrow@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.0.2.tgz#93b0ff95f65e2264a05b14ef1031ec798243dd6f" + integrity sha512-fqYwhhI9IarZ0ll2cUSfKuXHlJK0qE4AfnRrPBbRwEH/4mGQn04/QFGomLi8TXWIdv9WJk//KgGm+aDxVIr1wA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.2" + +"@radix-ui/react-compose-refs@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz#37595b1f16ec7f228d698590e78eeed18ff218ae" + integrity sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-context@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.0.tgz#f38e30c5859a9fb5e9aa9a9da452ee3ed9e0aee0" + integrity sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-dismissable-layer@1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.3.tgz#63844d8e6bbcd010a513e7176d051c3c4044e09e" + integrity sha512-nXZOvFjOuHS1ovumntGV7NNoLaEp9JEvTht3MBjP44NSW5hUKj/8OnfN3+8WmB+CEhN44XaGhpHoSsUIEl5P7Q== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/primitive" "1.0.0" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-primitive" "1.0.2" + "@radix-ui/react-use-callback-ref" "1.0.0" + "@radix-ui/react-use-escape-keydown" "1.0.2" + +"@radix-ui/react-id@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.0.tgz#8d43224910741870a45a8c9d092f25887bb6d11e" + integrity sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-popper@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.1.1.tgz#54f060941c981e965ff5d6b64e152d6298d2326e" + integrity sha512-keYDcdMPNMjSC8zTsZ8wezUMiWM9Yj14wtF3s0PTIs9srnEPC9Kt2Gny1T3T81mmSeyDjZxsD9N5WCwNNb712w== + dependencies: + "@babel/runtime" "^7.13.10" + "@floating-ui/react-dom" "0.7.2" + "@radix-ui/react-arrow" "1.0.2" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-context" "1.0.0" + "@radix-ui/react-primitive" "1.0.2" + "@radix-ui/react-use-callback-ref" "1.0.0" + "@radix-ui/react-use-layout-effect" "1.0.0" + "@radix-ui/react-use-rect" "1.0.0" + "@radix-ui/react-use-size" "1.0.0" + "@radix-ui/rect" "1.0.0" + +"@radix-ui/react-portal@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.0.2.tgz#102370b1027a767a371cab0243be4bc664f72330" + integrity sha512-swu32idoCW7KA2VEiUZGBSu9nB6qwGdV6k6HYhUoOo3M1FFpD+VgLzUqtt3mwL1ssz7r2x8MggpLSQach2Xy/Q== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.2" + +"@radix-ui/react-presence@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.0.tgz#814fe46df11f9a468808a6010e3f3ca7e0b2e84a" + integrity sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-primitive@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.2.tgz#54e22f49ca59ba88d8143090276d50b93f8a7053" + integrity sha512-zY6G5Qq4R8diFPNwtyoLRZBxzu1Z+SXMlfYpChN7Dv8gvmx9X3qhDqiLWvKseKVJMuedFeU/Sa0Sy/Ia+t06Dw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-slot" "1.0.1" + +"@radix-ui/react-slot@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.1.tgz#e7868c669c974d649070e9ecbec0b367ee0b4d81" + integrity sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.0" + +"@radix-ui/react-tooltip@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-1.0.5.tgz#fe20274aeac874db643717fc7761d5a8abdd62d1" + integrity sha512-cDKVcfzyO6PpckZekODJZDe5ZxZ2fCZlzKzTmPhe4mX9qTHRfLcKgqb0OKf22xLwDequ2tVleim+ZYx3rabD5w== + dependencies: + "@babel/runtime" "^7.13.10" + "@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.3" + "@radix-ui/react-id" "1.0.0" + "@radix-ui/react-popper" "1.1.1" + "@radix-ui/react-portal" "1.0.2" + "@radix-ui/react-presence" "1.0.0" + "@radix-ui/react-primitive" "1.0.2" + "@radix-ui/react-slot" "1.0.1" + "@radix-ui/react-use-controllable-state" "1.0.0" + "@radix-ui/react-visually-hidden" "1.0.2" + +"@radix-ui/react-use-callback-ref@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz#9e7b8b6b4946fe3cbe8f748c82a2cce54e7b6a90" + integrity sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-controllable-state@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz#a64deaafbbc52d5d407afaa22d493d687c538b7f" + integrity sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-callback-ref" "1.0.0" + +"@radix-ui/react-use-escape-keydown@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.2.tgz#09ab6455ab240b4f0a61faf06d4e5132c4d639f6" + integrity sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-callback-ref" "1.0.0" + +"@radix-ui/react-use-layout-effect@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz#2fc19e97223a81de64cd3ba1dc42ceffd82374dc" + integrity sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-rect@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.0.0.tgz#b040cc88a4906b78696cd3a32b075ed5b1423b3e" + integrity sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/rect" "1.0.0" + +"@radix-ui/react-use-size@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.0.0.tgz#a0b455ac826749419f6354dc733e2ca465054771" + integrity sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-visually-hidden@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.2.tgz#29b117a59ef09a984bdad12cb98d81e8350be450" + integrity sha512-qirnJxtYn73HEk1rXL12/mXnu2rwsNHDID10th2JGtdK25T9wX+mxRmGt7iPSahw512GbZOc0syZX1nLQGoEOg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-primitive" "1.0.2" + +"@radix-ui/rect@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.0.0.tgz#0dc8e6a829ea2828d53cbc94b81793ba6383bf3c" + integrity sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg== + dependencies: + "@babel/runtime" "^7.13.10" + "@reduxjs/toolkit@^1.8.1": version "1.9.1" resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.1.tgz#4c34dc4ddcec161535288c60da5c19c3ef15180e" @@ -3063,6 +3262,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"