diff --git a/web/components/estimates/create-update-estimate-modal.tsx b/web/components/estimates-legacy/create-update-estimate-modal.tsx similarity index 100% rename from web/components/estimates/create-update-estimate-modal.tsx rename to web/components/estimates-legacy/create-update-estimate-modal.tsx diff --git a/web/components/estimates/delete-estimate-modal.tsx b/web/components/estimates-legacy/delete-estimate-modal.tsx similarity index 100% rename from web/components/estimates/delete-estimate-modal.tsx rename to web/components/estimates-legacy/delete-estimate-modal.tsx diff --git a/web/components/estimates/estimate-list-item.tsx b/web/components/estimates-legacy/estimate-list-item.tsx similarity index 100% rename from web/components/estimates/estimate-list-item.tsx rename to web/components/estimates-legacy/estimate-list-item.tsx diff --git a/web/components/estimates/estimates-list.tsx b/web/components/estimates-legacy/estimates-list.tsx similarity index 98% rename from web/components/estimates/estimates-list.tsx rename to web/components/estimates-legacy/estimates-list.tsx index fc54cd654..5103726e5 100644 --- a/web/components/estimates/estimates-list.tsx +++ b/web/components/estimates-legacy/estimates-list.tsx @@ -5,7 +5,7 @@ import { IEstimate } from "@plane/types"; // store hooks import { Button, Loader, TOAST_TYPE, setToast } from "@plane/ui"; import { EmptyState } from "@/components/empty-state"; -import { CreateUpdateEstimateModal, DeleteEstimateModal, EstimateListItem } from "@/components/estimates"; +import { CreateUpdateEstimateModal, DeleteEstimateModal, EstimateListItem } from "@/components/estimates-legacy"; import { EmptyStateType } from "@/constants/empty-state"; import { orderArrayBy } from "@/helpers/array.helper"; import { useEstimate, useProject } from "@/hooks/store"; diff --git a/web/components/estimates-legacy/index.ts b/web/components/estimates-legacy/index.ts new file mode 100644 index 000000000..2f4733055 --- /dev/null +++ b/web/components/estimates-legacy/index.ts @@ -0,0 +1,4 @@ +export * from "./create-update-estimate-modal"; +export * from "./delete-estimate-modal"; +export * from "./estimate-list-item"; +export * from "./estimates-list"; diff --git a/web/ee/components/estimates/create/index.ts b/web/components/estimates/create/index.ts similarity index 100% rename from web/ee/components/estimates/create/index.ts rename to web/components/estimates/create/index.ts diff --git a/web/ee/components/estimates/create/modal.tsx b/web/components/estimates/create/modal.tsx similarity index 97% rename from web/ee/components/estimates/create/modal.tsx rename to web/components/estimates/create/modal.tsx index fa9f134b5..bdc635882 100644 --- a/web/ee/components/estimates/create/modal.tsx +++ b/web/components/estimates/create/modal.tsx @@ -6,12 +6,11 @@ import { IEstimate } from "@plane/types"; import { Button } from "@plane/ui"; // components import { EModalPosition, EModalWidth, ModalCore } from "@/components/core"; +import { EstimateCreateStageOne, EstimateCreateStageTwo } from "@/components/estimates"; +import { TEstimateSystemKeys, EEstimateSystem, TEstimateSystemKeyObject } from "@/components/estimates/types"; // constants import { ESTIMATE_SYSTEMS } from "@/constants/estimates"; // ee components -import { EstimateCreateStageOne, EstimateCreateStageTwo } from "@/ee/components/estimates"; -// types -import { TEstimateSystemKeys, EEstimateSystem, TEstimateSystemKeyObject } from "@/ee/components/estimates/types"; type Props = { isOpen: boolean; diff --git a/web/ee/components/estimates/create/stage-one.tsx b/web/components/estimates/create/stage-one.tsx similarity index 97% rename from web/ee/components/estimates/create/stage-one.tsx rename to web/components/estimates/create/stage-one.tsx index f8206ff26..ccd8023cd 100644 --- a/web/ee/components/estimates/create/stage-one.tsx +++ b/web/components/estimates/create/stage-one.tsx @@ -4,7 +4,7 @@ import { RadioInput } from "@/components/radio-group"; // constants import { ESTIMATE_SYSTEMS } from "@/constants/estimates"; // types -import { TEstimateSystemKeys } from "@/ee/components/estimates/types"; +import { TEstimateSystemKeys } from "@/components/estimates/types"; type TEstimateCreateStageOne = { estimateSystem: TEstimateSystemKeys; diff --git a/web/ee/components/estimates/create/stage-two.tsx b/web/components/estimates/create/stage-two.tsx similarity index 96% rename from web/ee/components/estimates/create/stage-two.tsx rename to web/components/estimates/create/stage-two.tsx index c645c235c..74a1de0ae 100644 --- a/web/ee/components/estimates/create/stage-two.tsx +++ b/web/components/estimates/create/stage-two.tsx @@ -2,18 +2,17 @@ import { FC } from "react"; import { Plus } from "lucide-react"; import { Button } from "@plane/ui"; // components -import { Sortable } from "@/components/sortable/sortable"; -// constants -import { ESTIMATE_SYSTEMS } from "@/constants/estimates"; -import { EstimateItem } from "@/ee/components/estimates"; -// types +import { EstimateItem } from "@/components/estimates"; import { EEstimateSystem, TEstimatePointNumeric, TEstimatePointString, TEstimateSystemKeyObject, TEstimateSystemKeys, -} from "@/ee/components/estimates/types"; +} from "@/components/estimates/types"; +import { Sortable } from "@/components/sortable/sortable"; +// constants +import { ESTIMATE_SYSTEMS } from "@/constants/estimates"; type TEstimateCreateStageTwo = { estimateSystem: EEstimateSystem; diff --git a/web/ee/components/estimates/delete/index.ts b/web/components/estimates/delete/index.ts similarity index 100% rename from web/ee/components/estimates/delete/index.ts rename to web/components/estimates/delete/index.ts diff --git a/web/ee/components/estimates/delete/modal.tsx b/web/components/estimates/delete/modal.tsx similarity index 100% rename from web/ee/components/estimates/delete/modal.tsx rename to web/components/estimates/delete/modal.tsx diff --git a/web/components/estimates/empty-screen.tsx b/web/components/estimates/empty-screen.tsx new file mode 100644 index 000000000..03f21ab8f --- /dev/null +++ b/web/components/estimates/empty-screen.tsx @@ -0,0 +1,39 @@ +import { FC } from "react"; +import Image from "next/image"; +import { useTheme } from "next-themes"; +import { Button } from "@plane/ui"; + +type TEstimateEmptyScreen = { + onButtonClick: () => void; +}; + +export const EstimateEmptyScreen: FC = (props) => { + // props + const { onButtonClick } = props; + const { resolvedTheme } = useTheme(); + + const emptyScreenImage = `/empty-state/project-settings/estimates-${ + resolvedTheme === "light" ? "light" : "dark" + }.webp`; + + return ( +
+
+ Empty estimate image +
+
+

No estimate systems yet

+

Explain estimates system here

+
+
+ +
+
+ ); +}; diff --git a/web/ee/components/estimates/estimate-disable.tsx b/web/components/estimates/estimate-disable.tsx similarity index 100% rename from web/ee/components/estimates/estimate-disable.tsx rename to web/components/estimates/estimate-disable.tsx diff --git a/web/ee/components/estimates/estimate-item.tsx b/web/components/estimates/estimate-item.tsx similarity index 100% rename from web/ee/components/estimates/estimate-item.tsx rename to web/components/estimates/estimate-item.tsx diff --git a/web/ee/components/estimates/estimate-search.tsx b/web/components/estimates/estimate-search.tsx similarity index 100% rename from web/ee/components/estimates/estimate-search.tsx rename to web/components/estimates/estimate-search.tsx diff --git a/web/components/estimates/index.ts b/web/components/estimates/index.ts index 2f4733055..33d533057 100644 --- a/web/components/estimates/index.ts +++ b/web/components/estimates/index.ts @@ -1,4 +1,12 @@ -export * from "./create-update-estimate-modal"; -export * from "./delete-estimate-modal"; -export * from "./estimate-list-item"; -export * from "./estimates-list"; +export * from "./root"; +export * from "./empty-screen"; +export * from "./estimate-search"; +export * from "./estimate-disable"; +export * from "./estimate-item"; + +// estimate create +export * from "./create"; + +// estimate update + +// estimate delete diff --git a/web/ee/components/estimates/inline-editable.tsx b/web/components/estimates/inline-editable.tsx similarity index 100% rename from web/ee/components/estimates/inline-editable.tsx rename to web/components/estimates/inline-editable.tsx diff --git a/web/ee/components/estimates/root.tsx b/web/components/estimates/root.tsx similarity index 93% rename from web/ee/components/estimates/root.tsx rename to web/components/estimates/root.tsx index ca87857c7..e808243d7 100644 --- a/web/ee/components/estimates/root.tsx +++ b/web/components/estimates/root.tsx @@ -4,11 +4,11 @@ import { IEstimate } from "@plane/types"; import { Button, Loader, TOAST_TYPE, setToast } from "@plane/ui"; // components import { EmptyState } from "@/components/empty-state"; -import { DeleteEstimateModal, EstimateListItem } from "@/components/estimates"; +import { CreateEstimateModal, EstimateEmptyScreen } from "@/components/estimates"; +import { DeleteEstimateModal, EstimateListItem } from "@/components/estimates-legacy"; // constants import { EmptyStateType } from "@/constants/empty-state"; // ee components -import { CreateEstimateModal } from "@/ee/components/estimates"; // hooks import { useProject, useProjectEstimates } from "@/hooks/store"; @@ -23,13 +23,16 @@ export const EstimateRoot: FC = (props) => { const { updateProject, currentProjectDetails } = useProject(); const { loader, projectEstimateIds, estimateById, getAllEstimates } = useProjectEstimates(projectId); // states - const [isEstimateCreateModalOpen, setIsEstimateCreateModalOpen] = useState(true); + const [isEstimateCreateModalOpen, setIsEstimateCreateModalOpen] = useState(false); const [isEstimateDeleteModalOpen, setIsEstimateDeleteModalOpen] = useState(null); const [estimateToUpdate, setEstimateToUpdate] = useState(); + console.log("workspaceSlug", workspaceSlug); + console.log("projectId", projectId); + const { isLoading: isSWRLoading } = useSWR( workspaceSlug && projectId ? `PROJECT_ESTIMATES_${workspaceSlug}_${projectId}` : null, - workspaceSlug && projectId ? () => getAllEstimates() : null + async () => workspaceSlug && projectId && getAllEstimates() ); const editEstimate = (estimate: IEstimate) => { @@ -57,32 +60,9 @@ export const EstimateRoot: FC = (props) => { }); }; - if (!workspaceSlug || !projectId) return <>; - return (
- {/* modals */} - {/* create modal */} - { - setIsEstimateCreateModalOpen(false); - setEstimateToUpdate(undefined); - }} - /> - {/* edit modal */} - {/* delete modal */} - setIsEstimateDeleteModalOpen(null)} - data={ - null - // getProjectEstimateById(isEstimateDeleteModalOpen!) - } - /> - - {/* handling the estimates list */} + {}} /> {loader === "init-loader" || isSWRLoading ? ( @@ -140,6 +120,23 @@ export const EstimateRoot: FC = (props) => { )} )} + + { + setIsEstimateCreateModalOpen(false); + setEstimateToUpdate(undefined); + }} + /> + setIsEstimateDeleteModalOpen(null)} + data={ + null + // getProjectEstimateById(isEstimateDeleteModalOpen!) + } + />
); }; diff --git a/web/ee/components/estimates/types.ts b/web/components/estimates/types.ts similarity index 100% rename from web/ee/components/estimates/types.ts rename to web/components/estimates/types.ts diff --git a/web/ee/components/estimates/update-estimate-modal.tsx b/web/components/estimates/update-estimate-modal.tsx similarity index 100% rename from web/ee/components/estimates/update-estimate-modal.tsx rename to web/components/estimates/update-estimate-modal.tsx diff --git a/web/ee/components/estimates/update/index.ts b/web/components/estimates/update/index.ts similarity index 100% rename from web/ee/components/estimates/update/index.ts rename to web/components/estimates/update/index.ts diff --git a/web/ee/components/estimates/update/modal.tsx b/web/components/estimates/update/modal.tsx similarity index 98% rename from web/ee/components/estimates/update/modal.tsx rename to web/components/estimates/update/modal.tsx index e5ef26249..86ee16f34 100644 --- a/web/ee/components/estimates/update/modal.tsx +++ b/web/components/estimates/update/modal.tsx @@ -5,7 +5,7 @@ import { Button } from "@plane/ui"; // components import { EModalPosition, EModalWidth, ModalCore } from "@/components/core"; // types -import { TEstimateSystemKeys, TEstimateSystemKeyObject } from "@/ee/components/estimates/types"; +import { TEstimateSystemKeys, TEstimateSystemKeyObject } from "@/components/estimates/types"; type Props = { isOpen: boolean; diff --git a/web/components/radio-group/radio-group.tsx b/web/components/radio-group/radio-group.tsx index b9228009b..949568020 100644 --- a/web/components/radio-group/radio-group.tsx +++ b/web/components/radio-group/radio-group.tsx @@ -37,8 +37,6 @@ const RadioInput = ({ aria = "radio-input"; } - // return

Hello

; - return ( diff --git a/web/constants/estimates.ts b/web/constants/estimates.ts index 0da79fba5..3216d5798 100644 --- a/web/constants/estimates.ts +++ b/web/constants/estimates.ts @@ -1,4 +1,4 @@ -import { TEstimateSystems } from "@/ee/components/estimates/types"; +import { TEstimateSystems } from "@/components/estimates/types"; export const ESTIMATE_SYSTEMS: TEstimateSystems = { points: { diff --git a/web/ee/components/estimates/index.ts b/web/ee/components/estimates/index.ts deleted file mode 100644 index ff3d7f02a..000000000 --- a/web/ee/components/estimates/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./root"; -export * from "./estimate-search"; -export * from "./estimate-disable"; -export * from "./estimate-item"; - -// estimate create -export * from "./create"; - -// estimate update - -// estimate delete diff --git a/web/package.json b/web/package.json index 52542afc4..72aa9d1e0 100644 --- a/web/package.json +++ b/web/package.json @@ -16,7 +16,7 @@ "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^1.3.0", "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3", "@blueprintjs/popover2": "^1.13.3", - "@headlessui/react": "^1.7.3", + "@headlessui/react": "^2.0.3", "@hello-pangea/dnd": "^16.3.0", "@nivo/bar": "0.80.0", "@nivo/calendar": "0.80.0", @@ -83,4 +83,4 @@ "tsconfig": "*", "typescript": "4.7.4" } -} \ No newline at end of file +} diff --git a/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx b/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx index 5872ed322..a1f414118 100644 --- a/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx +++ b/web/pages/[workspaceSlug]/projects/[projectId]/settings/estimates.tsx @@ -1,33 +1,38 @@ import { ReactElement } from "react"; import { observer } from "mobx-react"; -// hooks +import { useRouter } from "next/router"; +// components import { PageHead } from "@/components/core"; -import { EstimatesList } from "@/components/estimates"; +import { EstimateRoot } from "@/components/estimates"; import { ProjectSettingHeader } from "@/components/headers"; +// constants import { EUserProjectRoles } from "@/constants/project"; +// hooks import { useUser, useProject } from "@/hooks/store"; // layouts import { AppLayout } from "@/layouts/app-layout"; import { ProjectSettingLayout } from "@/layouts/settings-layout"; -// components // types import { NextPageWithLayout } from "@/lib/types"; -// constants const EstimatesSettingsPage: NextPageWithLayout = observer(() => { + const router = useRouter(); + const { workspaceSlug, projectId } = router.query; const { membership: { currentProjectRole }, } = useUser(); const { currentProjectDetails } = useProject(); + // derived values const isAdmin = currentProjectRole === EUserProjectRoles.ADMIN; const pageTitle = currentProjectDetails?.name ? `${currentProjectDetails?.name} - Estimates` : undefined; + if (!workspaceSlug || !projectId) return <>; return ( <>
- +
); diff --git a/web/services/project/estimate.service.ts b/web/services/project/estimate.service.ts new file mode 100644 index 000000000..0abc4cbd8 --- /dev/null +++ b/web/services/project/estimate.service.ts @@ -0,0 +1,79 @@ +// types +import { IEstimate } from "@plane/types"; +// helpers +import { API_BASE_URL } from "@/helpers/common.helper"; +// services +import { APIService } from "@/services/api.service"; + +export class EstimateService extends APIService { + constructor() { + super(API_BASE_URL); + } + + // fetching the estimates in workspace level + async fetchWorkspacesList(workspaceSlug: string): Promise { + try { + const { data } = await this.get(`/api/workspaces/${workspaceSlug}/estimates/`); + return data || undefined; + } catch (error) { + throw error; + } + } + + async fetchAll(workspaceSlug: string, projectId: string): Promise { + try { + const { data } = await this.get(`/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/`); + return data || undefined; + } catch (error) { + throw error; + } + } + + async fetchById(workspaceSlug: string, projectId: string, estimateId: string): Promise { + try { + const { data } = await this.get( + `/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/` + ); + return data || undefined; + } catch (error) { + throw error; + } + } + + async create(workspaceSlug: string, projectId: string, payload: Partial): Promise { + try { + const { data } = await this.post(`/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/`, payload); + return data || undefined; + } catch (error) { + throw error; + } + } + + async update( + workspaceSlug: string, + projectId: string, + estimateId: string, + payload: Partial + ): Promise { + try { + const { data } = await this.patch( + `/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/`, + payload + ); + return data || undefined; + } catch (error) { + throw error; + } + } + + async remove(workspaceSlug: string, projectId: string, estimateId: string): Promise { + try { + const { data } = await this.delete( + `/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/` + ); + return data || undefined; + } catch (error) { + throw error; + } + } +} diff --git a/web/services/project/index.ts b/web/services/project/index.ts index d131ceb6b..10ea7eb9b 100644 --- a/web/services/project/index.ts +++ b/web/services/project/index.ts @@ -1,5 +1,6 @@ export * from "./project.service"; export * from "./project-estimate.service"; +export * from "./estimate.service"; export * from "./project-export.service"; export * from "./project-member.service"; export * from "./project-state.service"; diff --git a/web/store/estimates/project-estimate.store.ts b/web/store/estimates/project-estimate.store.ts index 760dfc59b..f3f153d2c 100644 --- a/web/store/estimates/project-estimate.store.ts +++ b/web/store/estimates/project-estimate.store.ts @@ -25,6 +25,7 @@ export interface IProjectEstimateStore { projectEstimateIds: string[] | undefined; estimateById: (estimateId: string) => IEstimate | undefined; // actions + getWorkspaceAllEstimates: () => Promise; getAllEstimates: () => Promise; getEstimateById: (estimateId: string) => Promise; createEstimate: (data: Partial) => Promise; @@ -48,6 +49,7 @@ export class ProjectEstimateStore implements IProjectEstimateStore { // computed projectEstimateIds: computed, // actions + getWorkspaceAllEstimates: action, getAllEstimates: action, getEstimateById: action, createEstimate: action, @@ -79,7 +81,7 @@ export class ProjectEstimateStore implements IProjectEstimateStore { * @description fetch all estimates for a project * @returns { IEstimateType[] | undefined } */ - async getWorkspaceAllEstimates(): Promise { + getWorkspaceAllEstimates = async (): Promise => { try { const { workspaceSlug } = this.store.router; if (!workspaceSlug) return; @@ -99,9 +101,9 @@ export class ProjectEstimateStore implements IProjectEstimateStore { message: "Error fetching estimates", }; } - } + }; - async getAllEstimates(): Promise { + getAllEstimates = async (): Promise => { try { const { workspaceSlug, projectId } = this.store.router; if (!workspaceSlug || !projectId) return; @@ -121,14 +123,14 @@ export class ProjectEstimateStore implements IProjectEstimateStore { message: "Error fetching estimates", }; } - } + }; /** * @description update an estimate for a project * @param { string } estimateId * @returns IEstimateType | undefined */ - async getEstimateById(estimateId: string): Promise { + getEstimateById = async (estimateId: string): Promise => { try { const { workspaceSlug, projectId } = this.store.router; if (!workspaceSlug || !projectId) return; @@ -149,14 +151,14 @@ export class ProjectEstimateStore implements IProjectEstimateStore { message: "Error fetching estimate by id", }; } - } + }; /** * @description create an estimate for a project * @param { Partial } data * @returns */ - async createEstimate(data: Partial): Promise { + createEstimate = async (data: Partial): Promise => { try { const { workspaceSlug, projectId } = this.store.router; if (!workspaceSlug || !projectId) return; @@ -174,14 +176,14 @@ export class ProjectEstimateStore implements IProjectEstimateStore { message: "Error creating estimate", }; } - } + }; /** * @description delete an estimate for a project * @param { string } estimateId * @returns void */ - async deleteEstimate(estimateId: string): Promise { + deleteEstimate = async (estimateId: string): Promise => { try { const { workspaceSlug, projectId } = this.store.router; if (!workspaceSlug || !projectId) return; @@ -196,5 +198,5 @@ export class ProjectEstimateStore implements IProjectEstimateStore { message: "Error deleting estimate", }; } - } + }; } diff --git a/yarn.lock b/yarn.lock index b1a7ba562..f54a517c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1579,7 +1579,7 @@ dependencies: "@floating-ui/dom" "^1.0.0" -"@floating-ui/react@^0.26.4": +"@floating-ui/react@^0.26.13", "@floating-ui/react@^0.26.4": version "0.26.16" resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.16.tgz#3415a087f452165161c2d313d1d57e8142894679" integrity sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow== @@ -1593,7 +1593,7 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.2.tgz#d8bae93ac8b815b2bd7a98078cf91e2724ef11e5" integrity sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw== -"@headlessui/react@^1.7.13", "@headlessui/react@^1.7.17", "@headlessui/react@^1.7.19", "@headlessui/react@^1.7.3": +"@headlessui/react@^1.7.13", "@headlessui/react@^1.7.17", "@headlessui/react@^1.7.19": version "1.7.19" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.19.tgz#91c78cf5fcb254f4a0ebe96936d48421caf75f40" integrity sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw== @@ -1601,6 +1601,16 @@ "@tanstack/react-virtual" "^3.0.0-beta.60" client-only "^0.0.1" +"@headlessui/react@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-2.0.3.tgz#7506d808a6f3abc307f35354d34b8d642ecfd692" + integrity sha512-Xd1h0YZgfhxZ7W1w4TvK0/TZ1c4qaX4liYVUkAXqW1HCLcXSqnMeYAUGJS/BBroBAUL9HErjyFcRpCWRQZ/0lA== + dependencies: + "@floating-ui/react" "^0.26.13" + "@react-aria/focus" "^3.16.2" + "@react-aria/interactions" "^3.21.1" + "@tanstack/react-virtual" "3.5.0" + "@hello-pangea/dnd@^16.3.0": version "16.6.0" resolved "https://registry.yarnpkg.com/@hello-pangea/dnd/-/dnd-16.6.0.tgz#7509639c7bd13f55e537b65a9dcfcd54e7c99ac7" @@ -2207,6 +2217,45 @@ dependencies: "@babel/runtime" "^7.13.10" +"@react-aria/focus@^3.16.2": + version "3.17.1" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.17.1.tgz#c796a188120421e2fedf438cadacdf463c77ad29" + integrity sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ== + dependencies: + "@react-aria/interactions" "^3.21.3" + "@react-aria/utils" "^3.24.1" + "@react-types/shared" "^3.23.1" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + +"@react-aria/interactions@^3.21.1", "@react-aria/interactions@^3.21.3": + version "3.21.3" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.21.3.tgz#a2a3e354a8b894bed7a46e1143453f397f2538d7" + integrity sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA== + dependencies: + "@react-aria/ssr" "^3.9.4" + "@react-aria/utils" "^3.24.1" + "@react-types/shared" "^3.23.1" + "@swc/helpers" "^0.5.0" + +"@react-aria/ssr@^3.9.4": + version "3.9.4" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.9.4.tgz#9da8b10342c156e816dbfa4c9e713b21f274d7ab" + integrity sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-aria/utils@^3.24.1": + version "3.24.1" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.24.1.tgz#9d16023f07c23c41793c9030a9bd203a9c8cf0a7" + integrity sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q== + dependencies: + "@react-aria/ssr" "^3.9.4" + "@react-stately/utils" "^3.10.1" + "@react-types/shared" "^3.23.1" + "@swc/helpers" "^0.5.0" + clsx "^2.0.0" + "@react-spring/animated@~9.4.5": version "9.4.5" resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.4.5.tgz#dd9921c716a4f4a3ed29491e0c0c9f8ca0eb1a54" @@ -2253,6 +2302,18 @@ "@react-spring/shared" "~9.4.5" "@react-spring/types" "~9.4.5" +"@react-stately/utils@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.10.1.tgz#dc8685b4994bef0dc10c37b024074be8afbfba62" + integrity sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg== + dependencies: + "@swc/helpers" "^0.5.0" + +"@react-types/shared@^3.23.1": + version "3.23.1" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.23.1.tgz#2f23c81d819d0ef376df3cd4c944be4d6bce84c3" + integrity sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw== + "@remirror/core-constants@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.2.tgz#f05eccdc69e3a65e7d524b52548f567904a11a1a" @@ -3390,6 +3451,13 @@ "@swc/counter" "^0.1.3" tslib "^2.4.0" +"@swc/helpers@^0.5.0": + version "0.5.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.11.tgz#5bab8c660a6e23c13b2d23fcd1ee44a2db1b0cb7" + integrity sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A== + dependencies: + tslib "^2.4.0" + "@swc/types@0.1.7": version "0.1.7" resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.7.tgz#ea5d658cf460abff51507ca8d26e2d391bafb15e" @@ -3407,7 +3475,7 @@ lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/react-virtual@^3.0.0-beta.60": +"@tanstack/react-virtual@3.5.0", "@tanstack/react-virtual@^3.0.0-beta.60": version "3.5.0" resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.5.0.tgz#873b5b77cf78af563a4a11e6251ed51ee8868132" integrity sha512-rtvo7KwuIvqK9zb0VZ5IL7fiJAEnG+0EiFZz8FUOs+2mhGqdGmjKIaT1XU7Zq0eFqL0jonLlhbayJI/J2SA/Bw== @@ -10177,7 +10245,7 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -"prettier-fallback@npm:prettier@^3", prettier@^3.1.1, prettier@^3.2.5, prettier@latest: +"prettier-fallback@npm:prettier@^3": version "3.2.5" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== @@ -10204,6 +10272,11 @@ prettier@^2.8.8: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.1.1, prettier@^3.2.5, prettier@latest: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -11607,8 +11680,16 @@ string-argv@0.3.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11704,7 +11785,14 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -13100,8 +13188,16 @@ workbox-window@6.6.1, workbox-window@^6.5.4: "@types/trusted-types" "^2.0.2" workbox-core "6.6.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==