void, dependants: unknown[]) {
+ const [deps, setDeps] = useState(dependants);
+
+ if (deps.some((d, i) => d !== dependants[i])) {
+ setDeps(dependants);
+ callback();
+ }
+}
diff --git a/browser/data-browser/src/views/DrivePage.tsx b/browser/data-browser/src/views/DrivePage.tsx
index e1681e331..8c725b7b0 100644
--- a/browser/data-browser/src/views/DrivePage.tsx
+++ b/browser/data-browser/src/views/DrivePage.tsx
@@ -56,6 +56,7 @@ function DrivePage({ resource }: ResourcePageProps): JSX.Element {
Default Ontology
- Unknown Resource
+ {getMessageForErrorType(resource.error)}
);
@@ -58,7 +85,7 @@ export function ResourceInline({
function DefaultInline({ subject }: ResourceInlineInstanceProps): JSX.Element {
const resource = useResource(subject);
- const [description] = useString(resource, urls.properties.description);
+ const [description] = useString(resource, core.properties.description);
return {resource.title};
}
@@ -67,6 +94,6 @@ const classMap = new Map<
string,
(props: ResourceInlineInstanceProps) => JSX.Element
>([
- [urls.classes.tag, TagInline],
- [urls.classes.file, FileInline],
+ [dataBrowser.classes.tag, TagInline],
+ [server.classes.file, FileInline],
]);
diff --git a/browser/data-browser/src/views/TablePage/TableCell.tsx b/browser/data-browser/src/views/TablePage/TableCell.tsx
index c94f75fc6..03da41808 100644
--- a/browser/data-browser/src/views/TablePage/TableCell.tsx
+++ b/browser/data-browser/src/views/TablePage/TableCell.tsx
@@ -108,9 +108,12 @@ export function TableCell({
const handleEditNextRow = useCallback(() => {
if (!savePending) {
onEditNextRow?.();
- setTimeout(() => {
+
+ // Only go to the next row if the resource has any properties set (It has two by default, isA and parent)
+ // This prevents triggering a rerender and losing focus on the input.
+ if (resource.getPropVals().size > 2) {
setActiveCell(rowIndex + 1, columnIndex);
- }, 0);
+ }
}
}, [savePending, setActiveCell, rowIndex, columnIndex]);
diff --git a/browser/data-browser/src/views/TablePage/useTableInvalidation.ts b/browser/data-browser/src/views/TablePage/useTableInvalidation.ts
index 3709eccca..457f3c634 100644
--- a/browser/data-browser/src/views/TablePage/useTableInvalidation.ts
+++ b/browser/data-browser/src/views/TablePage/useTableInvalidation.ts
@@ -4,13 +4,14 @@ import {
CursorMode,
useTableEditorContext,
} from '../../components/TableEditor/TableEditorContext';
+import { useOnValueChange } from '../../helpers/useOnValueChange';
export function useTableInvalidation(
resource: Resource,
invalidateTable: () => void,
) {
const store = useStore();
- const { cursorMode } = useTableEditorContext();
+ const { cursorMode, selectedColumn, selectedRow } = useTableEditorContext();
const [markedForInvalidation, setMarkedForInvalidation] = useState(false);
@@ -20,6 +21,12 @@ export function useTableInvalidation(
}
}, [invalidateTable, markedForInvalidation]);
+ useOnValueChange(() => {
+ if (markedForInvalidation) {
+ invalidateTable();
+ }
+ }, [selectedRow, selectedColumn]);
+
useEffect(() => {
if (markedForInvalidation && cursorMode !== CursorMode.Edit) {
invalidateTable();
diff --git a/browser/e2e/package.json b/browser/e2e/package.json
index 79f01d83f..3662b83c2 100644
--- a/browser/e2e/package.json
+++ b/browser/e2e/package.json
@@ -12,7 +12,7 @@
"url": "https://github.com/atomicdata-dev/atomic-server/"
},
"devDependencies": {
- "@playwright/test": "^1.37.0"
+ "@playwright/test": "^1.43.1"
},
"scripts": {
"playwright-install": "playwright install chromium",
diff --git a/browser/e2e/tests/tables.spec.ts b/browser/e2e/tests/tables.spec.ts
index 0175f3d96..7481c9055 100644
--- a/browser/e2e/tests/tables.spec.ts
+++ b/browser/e2e/tests/tables.spec.ts
@@ -45,10 +45,11 @@ test.describe('tables', async () => {
await page.keyboard.press('Enter');
await expect(
page.locator(
- `[aria-rowindex="${rowIndex}"] > [aria-colindex="${2}"] > input`,
+ `[aria-rowindex="${rowIndex}"] > [aria-colindex="2"] > input`,
),
).toBeFocused();
await page.keyboard.type(name);
+ await page.waitForTimeout(300);
await tab();
// Flay newline
await page.waitForTimeout(300);
@@ -86,7 +87,7 @@ test.describe('tables', async () => {
).toBeVisible();
await expect(
page.locator(
- `[aria-rowindex="${rowIndex + 1}"] > [aria-colindex="${2}"] > input`,
+ `[aria-rowindex="${rowIndex + 1}"] > [aria-colindex="2"] > input`,
),
"Next row's first cell isn't focused",
).toBeFocused();
diff --git a/browser/e2e/tests/test-utils.ts b/browser/e2e/tests/test-utils.ts
index b9f75ff53..bd4ae357e 100644
--- a/browser/e2e/tests/test-utils.ts
+++ b/browser/e2e/tests/test-utils.ts
@@ -101,14 +101,20 @@ export async function signIn(page: Page) {
*/
export async function newDrive(page: Page) {
// Create new drive to prevent polluting the main drive
+ const driveTitle = `testdrive-${timestamp()}`;
await page.locator(sideBarDriveSwitcher).click();
await page.locator('button:has-text("New Drive")').click();
+ await expect(
+ currentDialog(page).getByRole('heading', { name: 'New Drive' }),
+ ).toBeVisible();
+
+ await currentDialog(page).getByLabel('Name').fill(driveTitle);
+
+ await currentDialog(page).getByRole('button', { name: 'Create' }).click();
expect(page.locator(`${currentDriveTitle} > localhost`)).not.toBeVisible();
await expect(page.locator('text="Create new resource"')).toBeVisible();
const driveURL = await getCurrentSubject(page);
expect(driveURL).toContain('localhost');
- const driveTitle = `testdrive-${timestamp()}`;
- await editTitle(driveTitle, page);
return { driveURL: driveURL as string, driveTitle };
}
diff --git a/browser/lib/src/error.ts b/browser/lib/src/error.ts
index 9955661cf..a907b4421 100644
--- a/browser/lib/src/error.ts
+++ b/browser/lib/src/error.ts
@@ -20,6 +20,10 @@ export function isUnauthorized(error?: Error): boolean {
return false;
}
+export function isAtomicError(error: Error): error is AtomicError {
+ return error instanceof AtomicError;
+}
+
/**
* Atomic Data Errors have an additional Type, which tells the client what kind
* of error to render.
diff --git a/browser/lib/src/resource.ts b/browser/lib/src/resource.ts
index 53c13b286..400a6a33d 100644
--- a/browser/lib/src/resource.ts
+++ b/browser/lib/src/resource.ts
@@ -726,17 +726,6 @@ export class Resource {
this._subject = subject;
}
- /** Returns true if the value has not changed */
- private equalsCurrentValue(prop: string, value: JSONValue) {
- const ownValue = this.get(prop);
-
- if (value === Object(value)) {
- return JSON.stringify(ownValue) === JSON.stringify(value);
- }
-
- return ownValue === value;
- }
-
private isParentNew() {
const parentSubject = this.propvals.get(core.properties.parent) as string;
diff --git a/browser/lib/src/store.ts b/browser/lib/src/store.ts
index 686d8b93a..58108f567 100644
--- a/browser/lib/src/store.ts
+++ b/browser/lib/src/store.ts
@@ -26,6 +26,7 @@ import {
buildSearchSubject,
server,
} from './index.js';
+import { stringToSlug } from './stringToSlug.js';
import { authenticate, fetchWebSocket, startWebsocket } from './websockets.js';
/** Function called when a resource is updated or removed */
@@ -288,7 +289,7 @@ export class Store {
parts: string[],
parent?: string,
): Promise {
- const path = parts.join('/');
+ const path = parts.map(part => stringToSlug(part)).join('/');
const parentUrl = parent ?? this.getServerUrl();
return this.findAvailableSubject(path, parentUrl);
@@ -941,7 +942,7 @@ export class Store {
parent: string,
firstTry = true,
): Promise {
- let url = `${parent}/${path}`;
+ let url = new URL(`${parent}/${path}`).toString();
if (!firstTry) {
const randomPart = this.randomPart();
@@ -968,7 +969,6 @@ export class Store {
return;
}
- // We clone for react, because otherwise it won't rerender
Promise.allSettled(callbacks.map(async cb => cb(resource)));
}
}
diff --git a/browser/lib/src/stringToSlug.ts b/browser/lib/src/stringToSlug.ts
new file mode 100644
index 000000000..a6f8bf199
--- /dev/null
+++ b/browser/lib/src/stringToSlug.ts
@@ -0,0 +1,7 @@
+export function stringToSlug(str: string): string {
+ return str
+ .toLowerCase()
+ .replace(/\s+/g, '-')
+ .replace(/-+/g, '-')
+ .replace(/[^\w-]+/g, '');
+}
diff --git a/browser/pnpm-lock.yaml b/browser/pnpm-lock.yaml
index 7b85ed7fa..d640cc904 100644
--- a/browser/pnpm-lock.yaml
+++ b/browser/pnpm-lock.yaml
@@ -144,13 +144,13 @@ importers:
version: 1.2.1
'@radix-ui/react-popover':
specifier: ^1.0.6
- version: 1.0.6(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ version: 1.0.6(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-scroll-area':
specifier: ^1.0.1
- version: 1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ version: 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-tabs':
specifier: ^1.0.4
- version: 1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ version: 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@tomic/react':
specifier: workspace:*
version: link:../react
@@ -267,8 +267,8 @@ importers:
e2e:
devDependencies:
'@playwright/test':
- specifier: ^1.37.0
- version: 1.37.0
+ specifier: ^1.43.1
+ version: 1.43.1
lib:
dependencies:
@@ -438,7 +438,7 @@ packages:
'@babel/traverse': 7.22.8
'@babel/types': 7.22.5
convert-source-map: 1.9.0
- debug: 4.3.4
+ debug: 4.3.4(supports-color@9.4.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -533,7 +533,7 @@ packages:
'@babel/core': 7.22.9
'@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9)
'@babel/helper-plugin-utils': 7.22.5
- debug: 4.3.4
+ debug: 4.3.4(supports-color@9.4.0)
lodash.debounce: 4.0.8
resolve: 1.22.3
transitivePeerDependencies:
@@ -1634,7 +1634,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.22.7
'@babel/types': 7.22.5
- debug: 4.3.4
+ debug: 4.3.4(supports-color@9.4.0)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -3670,15 +3670,12 @@ packages:
engines: {node: '>=14'}
dev: true
- /@playwright/test@1.37.0:
- resolution: {integrity: sha512-181WBLk4SRUyH1Q96VZl7BP6HcK0b7lbdeKisn3N/vnjitk+9HbdlFz/L5fey05vxaAhldIDnzo8KUoy8S3mmQ==}
+ /@playwright/test@1.43.1:
+ resolution: {integrity: sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==}
engines: {node: '>=16'}
hasBin: true
dependencies:
- '@types/node': 20.11.5
- playwright-core: 1.37.0
- optionalDependencies:
- fsevents: 2.3.2
+ playwright: 1.43.1
dev: true
/@pnpm/config.env-replace@1.1.0:
@@ -3757,7 +3754,7 @@ packages:
'@babel/runtime': 7.22.6
dev: false
- /@radix-ui/react-arrow@1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
peerDependencies:
'@types/react': '*'
@@ -3771,13 +3768,14 @@ packages:
optional: true
dependencies:
'@babel/runtime': 7.22.6
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@radix-ui/react-collection@1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
peerDependencies:
'@types/react': '*'
@@ -3793,9 +3791,10 @@ packages:
'@babel/runtime': 7.22.6
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -3842,7 +3841,7 @@ packages:
react: 18.2.0
dev: false
- /@radix-ui/react-dismissable-layer@1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==}
peerDependencies:
'@types/react': '*'
@@ -3858,10 +3857,11 @@ packages:
'@babel/runtime': 7.22.6
'@radix-ui/primitive': 1.0.1
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -3880,7 +3880,7 @@ packages:
react: 18.2.0
dev: false
- /@radix-ui/react-focus-scope@1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==}
peerDependencies:
'@types/react': '*'
@@ -3895,9 +3895,10 @@ packages:
dependencies:
'@babel/runtime': 7.22.6
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -3917,7 +3918,7 @@ packages:
react: 18.2.0
dev: false
- /@radix-ui/react-popover@1.0.6(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-popover@1.0.6(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-cZ4defGpkZ0qTRtlIBzJLSzL6ht7ofhhW4i1+pkemjV1IKXm0wgCRnee154qlV6r9Ttunmh2TNZhMfV2bavUyA==}
peerDependencies:
'@types/react': '*'
@@ -3934,24 +3935,25 @@ packages:
'@radix-ui/primitive': 1.0.1
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-dismissable-layer': 1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-focus-scope': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-popper': 1.1.2(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-portal': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-presence': 1.0.1(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
aria-hidden: 1.2.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
react-remove-scroll: 2.5.5(@types/react@18.2.34)(react@18.2.0)
dev: false
- /@radix-ui/react-popper@1.1.2(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==}
peerDependencies:
'@types/react': '*'
@@ -3966,21 +3968,22 @@ packages:
dependencies:
'@babel/runtime': 7.22.6
'@floating-ui/react-dom': 2.0.1(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-size': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/rect': 1.0.1
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@radix-ui/react-portal@1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==}
peerDependencies:
'@types/react': '*'
@@ -3994,13 +3997,14 @@ packages:
optional: true
dependencies:
'@babel/runtime': 7.22.6
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@radix-ui/react-presence@1.0.1(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
peerDependencies:
'@types/react': '*'
@@ -4017,11 +4021,12 @@ packages:
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@radix-ui/react-primitive@1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
peerDependencies:
'@types/react': '*'
@@ -4037,11 +4042,12 @@ packages:
'@babel/runtime': 7.22.6
'@radix-ui/react-slot': 1.0.2(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
peerDependencies:
'@types/react': '*'
@@ -4056,20 +4062,21 @@ packages:
dependencies:
'@babel/runtime': 7.22.6
'@radix-ui/primitive': 1.0.1
- '@radix-ui/react-collection': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@radix-ui/react-scroll-area@1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-scroll-area@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-OIClwBkwPG+FKvC4OMTRaa/3cfD069nkKFFL/TQzRzaO42Ce5ivKU9VMKgT7UU6UIkjcQqKBrDOIzWtPGw6e6w==}
peerDependencies:
'@types/react': '*'
@@ -4088,11 +4095,12 @@ packages:
'@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-presence': 1.0.1(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -4112,7 +4120,7 @@ packages:
react: 18.2.0
dev: false
- /@radix-ui/react-tabs@1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
+ /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==}
peerDependencies:
'@types/react': '*'
@@ -4130,11 +4138,12 @@ packages:
'@radix-ui/react-context': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-direction': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@radix-ui/react-id': 1.0.1(@types/react@18.2.34)(react@18.2.0)
- '@radix-ui/react-presence': 1.0.1(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
- '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)
'@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.34)(react@18.2.0)
'@types/react': 18.2.34
+ '@types/react-dom': 18.2.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
@@ -5104,7 +5113,6 @@ packages:
resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==}
dependencies:
'@types/react': 18.2.34
- dev: true
/@types/react-pdf@6.2.0:
resolution: {integrity: sha512-OSCYmrfaJvpXkM5V4seUMAhUDOAOqbGQf9kwv14INyTf7AjDs2ukfkkQrLWRQ8OjWrDklbXYWh5l7pT7l0N76g==}
@@ -5361,7 +5369,7 @@ packages:
vite: ^4 || ^5
dependencies:
'@swc/core': 1.3.104
- vite: 5.0.12
+ vite: 5.0.12(@types/node@20.11.5)
transitivePeerDependencies:
- '@swc/helpers'
dev: true
@@ -6039,16 +6047,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /axios@1.6.2:
- resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==}
- dependencies:
- follow-redirects: 1.15.3
- form-data: 4.0.0
- proxy-from-env: 1.1.0
- transitivePeerDependencies:
- - debug
- dev: true
-
/axios@1.6.2(debug@4.3.4):
resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==}
dependencies:
@@ -7342,17 +7340,6 @@ packages:
ms: 2.1.3
dev: false
- /debug@4.3.4:
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.1.2
-
/debug@4.3.4(supports-color@9.4.0):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -8850,16 +8837,6 @@ packages:
from2: 2.3.0
dev: true
- /follow-redirects@1.15.3:
- resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
- dev: true
-
/follow-redirects@1.15.3(debug@4.3.4):
resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==}
engines: {node: '>=4.0'}
@@ -11091,7 +11068,7 @@ packages:
cli-truncate: 2.1.0
commander: 6.2.1
cosmiconfig: 7.1.0
- debug: 4.3.4
+ debug: 4.3.4(supports-color@9.4.0)
dedent: 0.7.0
enquirer: 2.4.1
execa: 4.1.0
@@ -11920,7 +11897,7 @@ packages:
resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
dependencies:
'@types/debug': 4.1.8
- debug: 4.3.4
+ debug: 4.3.4(supports-color@9.4.0)
decode-named-character-reference: 1.0.2
micromark-core-commonmark: 1.1.0
micromark-factory-space: 1.1.0
@@ -13118,10 +13095,20 @@ packages:
pathe: 1.1.1
dev: true
- /playwright-core@1.37.0:
- resolution: {integrity: sha512-1c46jhTH/myQw6sesrcuHVtLoSNfJv8Pfy9t3rs6subY7kARv0HRw5PpyfPYPpPtQvBOmgbE6K+qgYUpj81LAA==}
+ /playwright-core@1.43.1:
+ resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==}
+ engines: {node: '>=16'}
+ hasBin: true
+ dev: true
+
+ /playwright@1.43.1:
+ resolution: {integrity: sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==}
engines: {node: '>=16'}
hasBin: true
+ dependencies:
+ playwright-core: 1.43.1
+ optionalDependencies:
+ fsevents: 2.3.2
dev: true
/please-upgrade-node@3.2.0:
@@ -16066,10 +16053,10 @@ packages:
workbox-build: ^7.0.0
workbox-window: ^7.0.0
dependencies:
- debug: 4.3.4
+ debug: 4.3.4(supports-color@9.4.0)
fast-glob: 3.3.2
pretty-bytes: 6.1.1
- vite: 5.0.12
+ vite: 5.0.12(@types/node@20.11.5)
workbox-build: 7.0.0
workbox-window: 7.0.0
transitivePeerDependencies:
@@ -16081,50 +16068,15 @@ packages:
peerDependencies:
vite: ^2 || ^3 || ^4 || ^5
dependencies:
- axios: 1.6.2
+ axios: 1.6.2(debug@4.3.4)
clean-css: 5.3.3
flat-cache: 3.0.4
picocolors: 1.0.0
- vite: 5.0.12
+ vite: 5.0.12(@types/node@20.11.5)
transitivePeerDependencies:
- debug
dev: true
- /vite@5.0.12:
- resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
- dependencies:
- esbuild: 0.19.6
- postcss: 8.4.33
- rollup: 4.6.0
- optionalDependencies:
- fsevents: 2.3.3
- dev: true
-
/vite@5.0.12(@types/node@20.11.5):
resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
engines: {node: ^18.0.0 || >=20.0.0}