mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
chore: folder structure updates
This commit is contained in:
parent
67b9d4a8f2
commit
d6325320e9
@ -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";
|
4
web/components/estimates-legacy/index.ts
Normal file
4
web/components/estimates-legacy/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export * from "./create-update-estimate-modal";
|
||||
export * from "./delete-estimate-modal";
|
||||
export * from "./estimate-list-item";
|
||||
export * from "./estimates-list";
|
@ -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;
|
@ -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;
|
@ -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;
|
39
web/components/estimates/empty-screen.tsx
Normal file
39
web/components/estimates/empty-screen.tsx
Normal file
@ -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<TEstimateEmptyScreen> = (props) => {
|
||||
// props
|
||||
const { onButtonClick } = props;
|
||||
const { resolvedTheme } = useTheme();
|
||||
|
||||
const emptyScreenImage = `/empty-state/project-settings/estimates-${
|
||||
resolvedTheme === "light" ? "light" : "dark"
|
||||
}.webp`;
|
||||
|
||||
return (
|
||||
<div className="relative flex flex-col justify-center items-center text-center gap-8 border border-custom-border-300 rounded bg-custom-background-90 py-20">
|
||||
<div className="flex-shrink-0 w-[120px] h-[120px] overflow-hidden relative flex justify-center items-center">
|
||||
<Image
|
||||
src={emptyScreenImage}
|
||||
alt="Empty estimate image"
|
||||
width={100}
|
||||
height={100}
|
||||
className="object-contain w-full h-full"
|
||||
/>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<h3 className="text-xl font-medium text-custom-text-100">No estimate systems yet</h3>
|
||||
<p className="text-base text-custom-text-300">Explain estimates system here</p>
|
||||
</div>
|
||||
<div>
|
||||
<Button onClick={onButtonClick}>Add Estimate System</Button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
@ -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
|
||||
|
@ -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<TEstimateRoot> = (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<string | null>(null);
|
||||
const [estimateToUpdate, setEstimateToUpdate] = useState<IEstimate | undefined>();
|
||||
|
||||
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<TEstimateRoot> = (props) => {
|
||||
});
|
||||
};
|
||||
|
||||
if (!workspaceSlug || !projectId) return <></>;
|
||||
|
||||
return (
|
||||
<div>
|
||||
{/* modals */}
|
||||
{/* create modal */}
|
||||
<CreateEstimateModal
|
||||
isOpen={isEstimateCreateModalOpen}
|
||||
data={estimateToUpdate}
|
||||
handleClose={() => {
|
||||
setIsEstimateCreateModalOpen(false);
|
||||
setEstimateToUpdate(undefined);
|
||||
}}
|
||||
/>
|
||||
{/* edit modal */}
|
||||
{/* delete modal */}
|
||||
<DeleteEstimateModal
|
||||
isOpen={!!isEstimateDeleteModalOpen}
|
||||
handleClose={() => setIsEstimateDeleteModalOpen(null)}
|
||||
data={
|
||||
null
|
||||
// getProjectEstimateById(isEstimateDeleteModalOpen!)
|
||||
}
|
||||
/>
|
||||
|
||||
{/* handling the estimates list */}
|
||||
<EstimateEmptyScreen onButtonClick={() => {}} />
|
||||
{loader === "init-loader" || isSWRLoading ? (
|
||||
<Loader className="mt-5 space-y-5">
|
||||
<Loader.Item height="40px" />
|
||||
@ -140,6 +120,23 @@ export const EstimateRoot: FC<TEstimateRoot> = (props) => {
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
|
||||
<CreateEstimateModal
|
||||
isOpen={isEstimateCreateModalOpen}
|
||||
data={estimateToUpdate}
|
||||
handleClose={() => {
|
||||
setIsEstimateCreateModalOpen(false);
|
||||
setEstimateToUpdate(undefined);
|
||||
}}
|
||||
/>
|
||||
<DeleteEstimateModal
|
||||
isOpen={!!isEstimateDeleteModalOpen}
|
||||
handleClose={() => setIsEstimateDeleteModalOpen(null)}
|
||||
data={
|
||||
null
|
||||
// getProjectEstimateById(isEstimateDeleteModalOpen!)
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
@ -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;
|
@ -37,8 +37,6 @@ const RadioInput = ({
|
||||
aria = "radio-input";
|
||||
}
|
||||
|
||||
// return <h1>Hello</h1>;
|
||||
|
||||
return (
|
||||
<RadioGroup value={selected} onChange={setSelected} aria-label={aria} className={className}>
|
||||
<Label className={cn(`mb-2`, inputLabelClassName)}>{inputLabel}</Label>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { TEstimateSystems } from "@/ee/components/estimates/types";
|
||||
import { TEstimateSystems } from "@/components/estimates/types";
|
||||
|
||||
export const ESTIMATE_SYSTEMS: TEstimateSystems = {
|
||||
points: {
|
||||
|
@ -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
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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 (
|
||||
<>
|
||||
<PageHead title={pageTitle} />
|
||||
<div className={`w-full overflow-y-auto py-8 pr-9 ${isAdmin ? "" : "pointer-events-none opacity-60"}`}>
|
||||
<EstimatesList />
|
||||
<EstimateRoot workspaceSlug={workspaceSlug?.toString()} projectId={projectId?.toString()} />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
79
web/services/project/estimate.service.ts
Normal file
79
web/services/project/estimate.service.ts
Normal file
@ -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<IEstimate[] | undefined> {
|
||||
try {
|
||||
const { data } = await this.get(`/api/workspaces/${workspaceSlug}/estimates/`);
|
||||
return data || undefined;
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async fetchAll(workspaceSlug: string, projectId: string): Promise<IEstimate[] | undefined> {
|
||||
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<IEstimate | undefined> {
|
||||
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<IEstimate>): Promise<IEstimate | undefined> {
|
||||
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<IEstimate>
|
||||
): Promise<IEstimate | undefined> {
|
||||
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<void> {
|
||||
try {
|
||||
const { data } = await this.delete(
|
||||
`/api/workspaces/${workspaceSlug}/projects/${projectId}/estimates/${estimateId}/`
|
||||
);
|
||||
return data || undefined;
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
@ -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";
|
||||
|
@ -25,6 +25,7 @@ export interface IProjectEstimateStore {
|
||||
projectEstimateIds: string[] | undefined;
|
||||
estimateById: (estimateId: string) => IEstimate | undefined;
|
||||
// actions
|
||||
getWorkspaceAllEstimates: () => Promise<IEstimateType[] | undefined>;
|
||||
getAllEstimates: () => Promise<IEstimateType[] | undefined>;
|
||||
getEstimateById: (estimateId: string) => Promise<IEstimateType | undefined>;
|
||||
createEstimate: (data: Partial<IEstimateType>) => Promise<IEstimateType | undefined>;
|
||||
@ -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<IEstimateType[] | undefined> {
|
||||
getWorkspaceAllEstimates = async (): Promise<IEstimateType[] | undefined> => {
|
||||
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<IEstimateType[] | undefined> {
|
||||
getAllEstimates = async (): Promise<IEstimateType[] | undefined> => {
|
||||
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<IEstimateType | undefined> {
|
||||
getEstimateById = async (estimateId: string): Promise<IEstimateType | undefined> => {
|
||||
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<IEstimateType> } data
|
||||
* @returns
|
||||
*/
|
||||
async createEstimate(data: Partial<IEstimateType>): Promise<IEstimateType | undefined> {
|
||||
createEstimate = async (data: Partial<IEstimateType>): Promise<IEstimateType | undefined> => {
|
||||
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<void> {
|
||||
deleteEstimate = async (estimateId: string): Promise<void> => {
|
||||
try {
|
||||
const { workspaceSlug, projectId } = this.store.router;
|
||||
if (!workspaceSlug || !projectId) return;
|
||||
@ -196,5 +198,5 @@ export class ProjectEstimateStore implements IProjectEstimateStore {
|
||||
message: "Error deleting estimate",
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
114
yarn.lock
114
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==
|
||||
|
Loading…
Reference in New Issue
Block a user