From 90833f10d700aaa6940a8104c48d47e9b4aabe0a Mon Sep 17 00:00:00 2001 From: "Eli Kent [SSW]" <69125238+kulesy@users.noreply.github.com> Date: Mon, 6 Jul 2026 10:41:35 +1000 Subject: [PATCH 1/8] feat(create-tina-app): stream live install activity on the spinner (#7122) Closes #7120 **TL;DR** The install step now reflects the package manager's live output on the spinner, instead of a static "Installing packages." that gave no sign of progress. **Pain:** `create-tina-app` ran ` install` with stdout ignored, so "Installing packages." showed no progress for the whole install (the Astro starter pulls ~900 packages / 1.2 GB, minutes on a cold cache). An animated spinner alone doesn't tell you the child is actually making progress. **Solution:** Pipe the package manager's output and show its latest line on the spinner, e.g. `Installing packages, npm http fetch GET 200 .../vite`. npm is silent when piped so it gets `--loglevel=http`; pnpm and yarn stream on their own. Both stdout and stderr are piped (npm logs to stderr, pnpm/yarn to stdout), and `NO_COLOR` keeps the captured lines plain. `--verbose` still streams the full output, and the #7031 stderr-tail error capture is unchanged. --------- Co-authored-by: Claude Opus 4.8 --- .changeset/plenty-eyes-pump.md | 5 ++ packages/create-tina-app/src/index.ts | 13 ++++- packages/create-tina-app/src/util/install.ts | 53 ++++++++++++++++---- 3 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 .changeset/plenty-eyes-pump.md diff --git a/.changeset/plenty-eyes-pump.md b/.changeset/plenty-eyes-pump.md new file mode 100644 index 0000000000..2378bdf038 --- /dev/null +++ b/.changeset/plenty-eyes-pump.md @@ -0,0 +1,5 @@ +--- +"create-tina-app": patch +--- + +feat(create-tina-app): stream live install activity on the spinner diff --git a/packages/create-tina-app/src/index.ts b/packages/create-tina-app/src/index.ts index 874222ca7a..04209d243d 100644 --- a/packages/create-tina-app/src/index.ts +++ b/packages/create-tina-app/src/index.ts @@ -37,6 +37,8 @@ import { osInfo as getOsSystemInfo } from 'systeminformation'; const DISCORD_SUPPORT_URL = 'https://discord.com/invite/zumN63Ybpf'; const FAQ_URL = 'https://tina.io/docs/faq'; +// Truncate the install activity line so the spinner stays on a single row. +const MAX_ACTIVITY_LINE = 56; let posthogClient: PostHog | null = null; async function initializePostHog( @@ -442,8 +444,15 @@ export async function run() { spinner.start('Installing packages.'); try { - await install(pkgManager as PackageManager, opts.verbose); - spinner.succeed(); + // Reflect the package manager's latest line on the spinner as live activity. + await install(pkgManager as PackageManager, opts.verbose, (line) => { + const text = + line.length > MAX_ACTIVITY_LINE + ? `${line.slice(0, MAX_ACTIVITY_LINE - 1)}…` + : line; + spinner.text = `Installing packages, ${text}`; + }); + spinner.succeed('Installing packages.'); } catch (err) { const error = err instanceof Error ? err : new Error(String(err)); const reason = error.message || String(err); diff --git a/packages/create-tina-app/src/util/install.ts b/packages/create-tina-app/src/util/install.ts index ea0923fe22..f8a4174d00 100644 --- a/packages/create-tina-app/src/util/install.ts +++ b/packages/create-tina-app/src/util/install.ts @@ -4,31 +4,66 @@ import { PackageManager } from './packageManagers'; /** Keep only the last N chars of captured output so error messages stay readable. */ const MAX_OUTPUT_CHARS = 4000; +// npm is silent when piped without this; the flag makes it stream per-package +// activity. pnpm and yarn stream on their own; bun stays quiet (no such flag). +const STREAM_FLAGS: Partial> = { + npm: ['--loglevel', 'http'], +}; + /** * Spawn a package manager installation. * + * @param onOutput Called with the latest complete line of install output + * (non-verbose only) so the caller can show it as live activity. * @returns A Promise that resolves once the installation is finished. * On failure it rejects with an `Error` whose message includes the command, * the exit code, and the tail of the captured output. */ export function install( packageManager: PackageManager, - verboseOutput: boolean + verboseOutput: boolean, + onOutput?: (line: string) => void ): Promise { + const args = [ + 'install', + ...(verboseOutput ? [] : (STREAM_FLAGS[packageManager] ?? [])), + ]; + // Error messages show the plain command, not our internal stream flag. const command = `${packageManager} install`; return new Promise((resolve, reject) => { - // Always pipe stderr so we can surface the real error even in non-verbose - // mode. In verbose mode we additionally stream it straight to the terminal. - const child = spawn(packageManager, ['install'], { - stdio: verboseOutput ? 'inherit' : ['ignore', 'ignore', 'pipe'], - env: { ...process.env, ADBLOCK: '1', DISABLE_OPENCOLLECTIVE: '1' }, + // Verbose: inherit. Otherwise pipe both streams for live activity and the + // error tail; npm logs to stderr, pnpm and yarn to stdout, so both are needed. + const child = spawn(packageManager, args, { + stdio: verboseOutput ? 'inherit' : ['ignore', 'pipe', 'pipe'], + env: { + ...process.env, + ADBLOCK: '1', + DISABLE_OPENCOLLECTIVE: '1', + // Non-verbose: force plain text so captured lines carry no color codes. + ...(verboseOutput ? {} : { NO_COLOR: '1' }), + }, }); let captured = ''; - child.stderr?.on('data', (chunk) => { - captured = (captured + chunk.toString()).slice(-MAX_OUTPUT_CHARS); - }); + let pending = ''; + const onChunk = (chunk: Buffer) => { + const text = chunk.toString(); + captured = (captured + text).slice(-MAX_OUTPUT_CHARS); + if (!onOutput) return; + // Buffer across chunks so we only ever surface a complete line, never a + // fragment split at a chunk boundary. + pending += text; + const lines = pending.split(/[\r\n]+/); + pending = lines.pop() ?? ''; + const line = lines + .map((l) => l.trim()) + .filter(Boolean) + .pop(); + if (line) onOutput(line); + }; + child.stdout?.on('data', onChunk); + child.stderr?.on('data', onChunk); // e.g. the package manager binary isn't on PATH. child.on('error', (err) => { From 3a1b39ad9a2bbeb82a539fbca6985d5b714238dd Mon Sep 17 00:00:00 2001 From: "Josh Berman [SSW]" <137844305+joshbermanssw@users.noreply.github.com> Date: Mon, 6 Jul 2026 10:53:49 +1000 Subject: [PATCH 2/8] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20@radix-ui/*=20d?= =?UTF-8?q?eps=20to=20latest=20and=20drop=20unused=20react-checkbox=20(#71?= =?UTF-8?q?41)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claude Opus 4.8 (1M context) --- .changeset/bump-radix-ui.md | 5 + packages/tinacms/package.json | 3 +- pnpm-lock.yaml | 777 ++++++++++++++++++++++++++++------ pnpm-workspace.yaml | 17 +- 4 files changed, 663 insertions(+), 139 deletions(-) create mode 100644 .changeset/bump-radix-ui.md diff --git a/.changeset/bump-radix-ui.md b/.changeset/bump-radix-ui.md new file mode 100644 index 0000000000..0d3cb13ea3 --- /dev/null +++ b/.changeset/bump-radix-ui.md @@ -0,0 +1,5 @@ +--- +"tinacms": patch +--- + +Update `@radix-ui/*` dependencies to their latest patch/minor releases and remove the unused `@radix-ui/react-checkbox` dependency diff --git a/packages/tinacms/package.json b/packages/tinacms/package.json index 69b49cdd80..8c4a444490 100644 --- a/packages/tinacms/package.json +++ b/packages/tinacms/package.json @@ -51,13 +51,12 @@ "@headlessui/react": "2.1.8", "@heroicons/react": "^1.0.6", "@monaco-editor/react": "catalog:", - "@radix-ui/react-checkbox": "catalog:", "@radix-ui/react-dialog": "catalog:", "@radix-ui/react-dropdown-menu": "catalog:", "@radix-ui/react-popover": "catalog:", "@radix-ui/react-select": "catalog:", "@radix-ui/react-separator": "catalog:", - "@radix-ui/react-slot": "^1.1.2", + "@radix-ui/react-slot": "catalog:", "@radix-ui/react-toolbar": "catalog:", "@radix-ui/react-tooltip": "catalog:", "@react-hook/window-size": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1c572c895..c5d139f6f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,30 +84,30 @@ catalogs: '@playwright/test': specifier: ^1.50.1 version: 1.57.0 - '@radix-ui/react-checkbox': - specifier: ^1.1.4 - version: 1.3.3 '@radix-ui/react-dialog': - specifier: ^1.1.6 - version: 1.1.15 + specifier: ^1.1.18 + version: 1.1.18 '@radix-ui/react-dropdown-menu': - specifier: ^2.1.6 - version: 2.1.16 + specifier: ^2.1.19 + version: 2.1.19 '@radix-ui/react-popover': - specifier: ^1.1.15 - version: 1.1.15 + specifier: ^1.1.18 + version: 1.1.18 '@radix-ui/react-select': - specifier: ^2.2.6 - version: 2.2.6 + specifier: ^2.3.2 + version: 2.3.2 '@radix-ui/react-separator': - specifier: ^1.1.2 - version: 1.1.8 - '@radix-ui/react-toolbar': - specifier: ^1.1.2 + specifier: ^1.1.11 version: 1.1.11 + '@radix-ui/react-slot': + specifier: ^1.3.0 + version: 1.3.0 + '@radix-ui/react-toolbar': + specifier: ^1.1.14 + version: 1.1.14 '@radix-ui/react-tooltip': - specifier: ^1.2.8 - version: 1.2.8 + specifier: ^1.2.11 + version: 1.2.11 '@react-hook/window-size': specifier: ^3.1.1 version: 3.1.1 @@ -2225,33 +2225,30 @@ importers: '@monaco-editor/react': specifier: 'catalog:' version: 4.7.0-rc.0(monaco-editor@0.31.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-checkbox': - specifier: 'catalog:' - version: 1.3.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': specifier: 'catalog:' - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.18(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': specifier: 'catalog:' - version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.19(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-popover': specifier: 'catalog:' - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.18(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-select': specifier: 'catalog:' - version: 2.2.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-separator': specifier: 'catalog:' - version: 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': - specifier: ^1.1.2 - version: 1.2.4(@types/react@18.3.27)(react@18.3.1) + specifier: 'catalog:' + version: 1.3.0(@types/react@18.3.27)(react@18.3.1) '@radix-ui/react-toolbar': specifier: 'catalog:' - version: 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': specifier: 'catalog:' - version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-hook/window-size': specifier: 'catalog:' version: 3.1.1(react@18.3.1) @@ -6208,12 +6205,28 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@radix-ui/number@1.1.1': - resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + '@radix-ui/number@1.1.2': + resolution: {integrity: sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==} '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/primitive@1.1.4': + resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==} + + '@radix-ui/react-arrow@1.1.11': + resolution: {integrity: sha512-Kdil9BB1rIFC/khmf4hC35bn8701AJcizTU7G7cUbEbk5XqqbjDuHW60uUfKqO5WojjZcbAW51Q7P0hRmMLw8A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-arrow@1.1.7': resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: @@ -6227,8 +6240,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-checkbox@1.3.3': - resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + '@radix-ui/react-collection@1.1.11': + resolution: {integrity: sha512-djW9+zeg137KQdlPtmE8xnaD+K2rcXXMWFrSg0hsmYZ6HRbdTA7tDHFgpaW9+huWVEu0RCabL+985T4TA0BE7g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6262,6 +6275,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-compose-refs@1.1.3': + resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-context@1.1.2': resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: @@ -6271,6 +6293,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-context@1.1.4': + resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-dialog@1.1.15': resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: @@ -6284,6 +6315,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-dialog@1.1.18': + resolution: {integrity: sha512-apa28mldjMgORmE6g/w3sCcA0Y9UAVeeDVoozN4i7kOw12mLl9RBchfzK3Nn6qxOWjrZhK1Lfy7f07kyzxtnBw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-direction@1.1.1': resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: @@ -6293,6 +6337,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-direction@1.1.2': + resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-dismissable-layer@1.1.11': resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: @@ -6306,6 +6359,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-dismissable-layer@1.1.14': + resolution: {integrity: sha512-4lUhWTWAjbDIqFrAPWJ3WqBOpO5YchVZ88X3nh6H9Lu5AFi5nCUeTPj3D8FSDmabmFeRe9ME0BDA4MwKTha5GQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-dropdown-menu@2.1.16': resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} peerDependencies: @@ -6319,6 +6385,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-dropdown-menu@2.1.19': + resolution: {integrity: sha512-HZccBkbK0LOi8nYKIp5jll/zIRW0cCOmG6WWyqsSpmXCU+ZlcBbTqIwlBvPCu886C5RVu6c/kHV7xSP8IgYNHw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-focus-guards@1.1.3': resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: @@ -6328,6 +6407,28 @@ packages: '@types/react': optional: true + '@radix-ui/react-focus-guards@1.1.4': + resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.11': + resolution: {integrity: sha512-Mn88Vg2whaRocGJNOH+DKFqYm6ySFPQaiwHNxZPyjn99B52KAEJWWY9NP83+nWdk2HM3rdov+STu9AG471Rt9w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-focus-scope@1.1.7': resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: @@ -6350,6 +6451,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-id@1.1.2': + resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-menu@2.1.16': resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} peerDependencies: @@ -6363,8 +6473,21 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popover@1.1.15': - resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + '@radix-ui/react-menu@2.1.19': + resolution: {integrity: sha512-Mht9BVd1AIsNFVQr4KG3bIK7XQn5IXF0TL/2ObsrzOdc1loaly/+kBDL5roSCYn8j8XZkvpOD0WYLz2FQtH1Eg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.18': + resolution: {integrity: sha512-qdXDes+eHlnMUGlBAAAe5EG7oOQvqsXuq4mq585diMudg80iB+jHbsSeG3+Q4eWNsogNyhqU2p/3i+Y0iEepqg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6389,6 +6512,32 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-popper@1.3.2': + resolution: {integrity: sha512-3QXNeMkdshed1MR3LNoiCirBywRFPkD8ETJa/HlPuLwSajaQixf2ro+isoDNJlGABg9ug41XuZpINZJIle4XWg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.13': + resolution: {integrity: sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-portal@1.1.9': resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: @@ -6415,6 +6564,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-presence@1.1.6': + resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.1.3': resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: @@ -6441,6 +6603,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.7': + resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-roving-focus@1.1.11': resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: @@ -6454,8 +6629,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-select@2.2.6': - resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + '@radix-ui/react-roving-focus@1.1.14': + resolution: {integrity: sha512-8Qcnx9447tx/aCBgw6Jenfqg4Skq+vqab9mCBmuGNipIS5YXvL275wbKEu7+ICYHIlAPgCduUMJH1XOYewKF6Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6467,8 +6642,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.7': - resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} + '@radix-ui/react-select@2.3.2': + resolution: {integrity: sha512-brXD6C/V0fVK0DDbscLVw6LsXrjQ+ay8jdOBaN+tLb4vsHsAMm6Gt6eT77wHX1Eq8GPtD5rJ+RxFtfDozsb4+Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6480,8 +6655,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.8': - resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==} + '@radix-ui/react-separator@1.1.11': + resolution: {integrity: sha512-jRhe86+8PF7VZ1u14eOWVOuh2BuAhALg/FT1VcMC4OHedMTRUazDnDlKTt+yxo5cRNKHMfmvZ4sSQtWDeMV4CQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6511,8 +6686,17 @@ packages: '@types/react': optional: true - '@radix-ui/react-toggle-group@1.1.11': - resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==} + '@radix-ui/react-slot@1.3.0': + resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-toggle-group@1.1.14': + resolution: {integrity: sha512-TK1vusNKb8IRhF23FTbRgUNZ9zfs5rGIyI7LfR3h26p9LrQ060i0uW9QWeD8baZMddaaP0DBGlIa6pbZG+mitg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6524,8 +6708,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.10': - resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} + '@radix-ui/react-toggle@1.1.13': + resolution: {integrity: sha512-bI2ILJrzwgmAsH05TsJ9pVrzqQwAip7OM2/krqAdYn0R16bl86UPWbe5VPHsALat0EnqpV01cGtkleaUKPNdNg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6537,8 +6721,21 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toolbar@1.1.11': - resolution: {integrity: sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==} + '@radix-ui/react-toolbar@1.1.14': + resolution: {integrity: sha512-L/EkWVqlnj3lL2toHh4C7PwH2jxfa7OCq6lGfXSCii99ve2S4Ux5rc9HnOa7LN9exHa/Nl9kmCAmP9BuDPy5UA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.11': + resolution: {integrity: sha512-8XZ6Py3y3W2nEzAUGCN5cfVKaUi+CVApcz1d6lrNVVf2hvYEixMRkq8k9ggPKnQUpRRuOV5avt8uvxViH2jLwA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6572,6 +6769,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-callback-ref@1.1.2': + resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-controllable-state@1.2.2': resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: @@ -6581,6 +6787,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-controllable-state@1.2.3': + resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-effect-event@0.0.2': resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: @@ -6590,6 +6805,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-effect-event@0.0.3': + resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-escape-keydown@1.1.1': resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: @@ -6608,8 +6832,17 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-previous@1.1.1': - resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + '@radix-ui/react-use-layout-effect@1.1.2': + resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.2': + resolution: {integrity: sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -6626,6 +6859,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-rect@1.1.2': + resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: @@ -6635,6 +6877,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-size@1.1.2': + resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-visually-hidden@1.2.3': resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: @@ -6661,9 +6912,25 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-visually-hidden@1.2.7': + resolution: {integrity: sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + '@radix-ui/rect@1.1.2': + resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==} + '@react-aria/focus@3.21.2': resolution: {integrity: sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==} peerDependencies: @@ -12752,9 +13019,6 @@ packages: resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} engines: {node: '>=10'} - moment@2.29.4: - resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} - monaco-editor@0.31.0: resolution: {integrity: sha512-H3QmysEwxxY8oxmFhIFcY9JkuwilUDa6txdAxb797cVr7XFZX27a3SDwcGJmTlV9iGPwdh132r3KKCS5aNL4Gg==} @@ -20402,10 +20666,21 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@radix-ui/number@1.1.1': {} + '@radix-ui/number@1.1.2': {} '@radix-ui/primitive@1.1.3': {} + '@radix-ui/primitive@1.1.4': {} + + '@radix-ui/react-arrow@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -20415,16 +20690,12 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -20449,12 +20720,24 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-compose-refs@1.1.3(@types/react@18.3.27)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-context@1.1.2(@types/react@18.3.27)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-context@1.1.4(@types/react@18.3.27)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -20477,12 +20760,40 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-dialog@1.1.18(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.27)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-direction@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-direction@1.1.2(@types/react@18.3.27)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -20496,6 +20807,19 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-dismissable-layer@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -20511,12 +20835,44 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-dropdown-menu@2.1.19(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-menu': 2.1.19(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.27)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-focus-guards@1.1.4(@types/react@18.3.27)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + + '@radix-ui/react-focus-scope@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) @@ -20535,6 +20891,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-id@1.1.2(@types/react@18.3.27)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -20561,21 +20924,47 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-popover@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-menu@2.1.19(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-popper': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.27)(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.27)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + + '@radix-ui/react-popover@1.1.18(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-popper': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -20602,6 +20991,34 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-popper@1.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/rect': 1.1.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + + '@radix-ui/react-portal@1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -20622,6 +21039,15 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-presence@1.1.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@18.3.27)(react@18.3.1) @@ -20640,64 +21066,82 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-select@2.2.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.27)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.27)(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.2(@types/react@18.3.27)(react@18.3.1) optionalDependencies: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-separator@1.1.8(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@2.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/number': 1.1.2 + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-collection': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-popper': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + aria-hidden: 1.2.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.27)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + + '@radix-ui/react-separator@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -20718,41 +21162,68 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 - '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-slot@1.3.0(@types/react@18.3.27)(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + + '@radix-ui/react-toggle-group@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-toggle@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toggle@1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) - '@radix-ui/react-toolbar@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-toolbar@1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.3.27)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-direction': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + + '@radix-ui/react-tooltip@1.2.11(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.4 + '@radix-ui/react-compose-refs': 1.1.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-context': 1.1.4(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.14(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.2(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-popper': 1.3.2(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.13(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.6(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.3.0(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -20785,6 +21256,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-use-callback-ref@1.1.2(@types/react@18.3.27)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.27)(react@18.3.1)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.27)(react@18.3.1) @@ -20793,6 +21270,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-use-controllable-state@1.2.3(@types/react@18.3.27)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.3(@types/react@18.3.27)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.27)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) @@ -20800,6 +21285,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-use-effect-event@0.0.3(@types/react@18.3.27)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.27)(react@18.3.1) @@ -20813,7 +21305,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 - '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.27)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.2(@types/react@18.3.27)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + + '@radix-ui/react-use-previous@1.1.2(@types/react@18.3.27)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: @@ -20826,6 +21324,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-use-rect@1.1.2(@types/react@18.3.27)(react@18.3.1)': + dependencies: + '@radix-ui/rect': 1.1.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-use-size@1.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.27)(react@18.3.1) @@ -20833,6 +21338,13 @@ snapshots: optionalDependencies: '@types/react': 18.3.27 + '@radix-ui/react-use-size@1.1.2(@types/react@18.3.27)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@18.3.27)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.27 + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -20851,8 +21363,19 @@ snapshots: '@types/react': 18.3.27 '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.27 + '@types/react-dom': 18.3.7(@types/react@18.3.27) + '@radix-ui/rect@1.1.1': {} + '@radix-ui/rect@1.1.2': {} + '@react-aria/focus@3.21.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/interactions': 3.25.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -29184,8 +29707,6 @@ snapshots: module-error@1.0.2: {} - moment@2.29.4: {} - monaco-editor@0.31.0: {} mongodb-connection-string-url@2.6.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6c6d91ba59..ae9a8e8c1c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -59,16 +59,15 @@ catalog: "@octokit/rest": ^22.0.1 "@playwright/test": ^1.50.1 "@puppeteer/replay": ^1.3.2 - "@radix-ui/react-checkbox": ^1.1.4 - "@radix-ui/react-dialog": ^1.1.6 - "@radix-ui/react-dropdown-menu": ^2.1.6 + "@radix-ui/react-dialog": ^1.1.18 + "@radix-ui/react-dropdown-menu": ^2.1.19 "@radix-ui/react-icons": ^1.3.2 - "@radix-ui/react-popover": ^1.1.15 - "@radix-ui/react-separator": ^1.1.2 - "@radix-ui/react-select": ^2.2.6 - "@radix-ui/react-slot": ^1.1.2 - "@radix-ui/react-toolbar": ^1.1.2 - "@radix-ui/react-tooltip": ^1.2.8 + "@radix-ui/react-popover": ^1.1.18 + "@radix-ui/react-separator": ^1.1.11 + "@radix-ui/react-select": ^2.3.2 + "@radix-ui/react-slot": ^1.3.0 + "@radix-ui/react-toolbar": ^1.1.14 + "@radix-ui/react-tooltip": ^1.2.11 "@react-hook/window-size": ^3.1.1 "@rollup/pluginutils": ^5.1.4 "@sucrase/jest-plugin": ^3.0.0 From ff10e657e48f1acc67cafd3e1a99bef23c8ac419 Mon Sep 17 00:00:00 2001 From: "Eli Kent [SSW]" <69125238+kulesy@users.noreply.github.com> Date: Mon, 6 Jul 2026 11:11:49 +1000 Subject: [PATCH 3/8] fix(tinacms): reject invalid folder names inline via shared relativePath allowlist (#7143) Closes #7142 **TL;DR** Unify folder-name validation with the document-filename and backend `relativePath` allowlist so invalid folder names (e.g. spaces) are rejected inline instead of failing on the backend with a generic error. **Pain:** The Create Folder modal only checked that a name was non-empty unless a project set `ui.regexValidation.folderNameRegex`. A name like `a b c d` passed that check, the `createFolder` mutation was sent, and the backend rejected it with `Invalid path: relativePath contains invalid characters`, surfaced as the unhelpful "There was an error creating the folder. Please try again. If the problem continues, please contact the developer" alert. Document filenames already validated the same allowlist inline, so the two flows had drifted. **Solution:** Add a single shared allowlist (`RELATIVE_PATH_REGEX` + `RELATIVE_PATH_ALLOWED_CHARS_MESSAGE` + `isValidRelativePath`) to `@tinacms/schema-tools`, and consume it from the resolver's `validateRelativePath`, the create-document filename field, and the Create Folder modal. The folder modal applies the allowlist as a baseline and layers any project-level `folderNameRegex` on top, so the UI can only ever be stricter than the backend, never looser. Backend enforcement is unchanged and remains the authoritative path-traversal gate; the client change is UX only. --------- Co-authored-by: Claude Opus 4.8 --- .changeset/unify-relative-path-validation.md | 7 +++ .../@tinacms/graphql/src/resolver/index.ts | 4 +- packages/@tinacms/schema-tools/src/index.ts | 1 + .../src/util/relativePath.spec.ts | 27 +++++++++ .../schema-tools/src/util/relativePath.ts | 10 ++++ .../src/admin/pages/CollectionCreatePage.tsx | 11 ++-- .../src/admin/pages/CollectionListPage.tsx | 55 ++++++++++++++----- .../tests/action/create-folder.spec.ts | 31 +++++++++++ 8 files changed, 125 insertions(+), 21 deletions(-) create mode 100644 .changeset/unify-relative-path-validation.md create mode 100644 packages/@tinacms/schema-tools/src/util/relativePath.spec.ts create mode 100644 packages/@tinacms/schema-tools/src/util/relativePath.ts create mode 100644 playwright/tina-playwright/tests/action/create-folder.spec.ts diff --git a/.changeset/unify-relative-path-validation.md b/.changeset/unify-relative-path-validation.md new file mode 100644 index 0000000000..9a96c64d23 --- /dev/null +++ b/.changeset/unify-relative-path-validation.md @@ -0,0 +1,7 @@ +--- +"@tinacms/schema-tools": patch +"@tinacms/graphql": patch +"tinacms": patch +--- + +Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. diff --git a/packages/@tinacms/graphql/src/resolver/index.ts b/packages/@tinacms/graphql/src/resolver/index.ts index cf5589118c..2a19440979 100644 --- a/packages/@tinacms/graphql/src/resolver/index.ts +++ b/packages/@tinacms/graphql/src/resolver/index.ts @@ -18,7 +18,7 @@ import type { TinaField, TinaSchema, } from '@tinacms/schema-tools'; -import { ERR_ALREADY_EXISTS } from '@tinacms/schema-tools'; +import { ERR_ALREADY_EXISTS, RELATIVE_PATH_REGEX } from '@tinacms/schema-tools'; import type { GraphQLConfig } from '../types'; @@ -698,7 +698,7 @@ export class Resolver { 'Invalid path: relativePath cannot have leading or trailing whitespace' ); } - if (!/^[a-zA-Z0-9\-_./]+$/.test(relativePath)) { + if (!RELATIVE_PATH_REGEX.test(relativePath)) { throw new Error('Invalid path: relativePath contains invalid characters'); } } diff --git a/packages/@tinacms/schema-tools/src/index.ts b/packages/@tinacms/schema-tools/src/index.ts index b4b8ac6b16..01167e91ac 100644 --- a/packages/@tinacms/schema-tools/src/index.ts +++ b/packages/@tinacms/schema-tools/src/index.ts @@ -4,5 +4,6 @@ export * from './validate'; export * from './util/namer'; export * from './util/parseURL'; export * from './util/normalizePath'; +export * from './util/relativePath'; export * from './util/headingLevels'; export * from './errors'; diff --git a/packages/@tinacms/schema-tools/src/util/relativePath.spec.ts b/packages/@tinacms/schema-tools/src/util/relativePath.spec.ts new file mode 100644 index 0000000000..629d7017b7 --- /dev/null +++ b/packages/@tinacms/schema-tools/src/util/relativePath.spec.ts @@ -0,0 +1,27 @@ +/** + +*/ + +import { isValidRelativePath } from './relativePath'; + +describe('isValidRelativePath', () => { + it('accepts allowed characters', () => { + expect(isValidRelativePath('my-document')).toEqual(true); + expect(isValidRelativePath('My_Document.en')).toEqual(true); + expect(isValidRelativePath('sub-folder/My_Document')).toEqual(true); + expect(isValidRelativePath('a-b-c-d')).toEqual(true); + expect(isValidRelativePath('parent/child')).toEqual(true); + }); + + it('rejects spaces', () => { + expect(isValidRelativePath('a b c d')).toEqual(false); + expect(isValidRelativePath('hello world')).toEqual(false); + }); + + it('rejects other disallowed characters', () => { + expect(isValidRelativePath('name!')).toEqual(false); + expect(isValidRelativePath('name@example')).toEqual(false); + expect(isValidRelativePath('name#1')).toEqual(false); + expect(isValidRelativePath('')).toEqual(false); + }); +}); diff --git a/packages/@tinacms/schema-tools/src/util/relativePath.ts b/packages/@tinacms/schema-tools/src/util/relativePath.ts new file mode 100644 index 0000000000..2fe7db5555 --- /dev/null +++ b/packages/@tinacms/schema-tools/src/util/relativePath.ts @@ -0,0 +1,10 @@ +/** Allowlist for a relativePath segment (filename or folder name); source of truth shared with the resolver's validateRelativePath so the UI can reject invalid names inline. */ +export const RELATIVE_PATH_REGEX = /^[a-zA-Z0-9\-_./]+$/; + +/** Inline form-validation message for {@link RELATIVE_PATH_REGEX}. */ +export const RELATIVE_PATH_ALLOWED_CHARS_MESSAGE = + 'Must contain only a-z, A-Z, 0-9, -, _, ., or /.'; + +/** True when `value` contains only characters allowed in a relativePath. */ +export const isValidRelativePath = (value: string): boolean => + RELATIVE_PATH_REGEX.test(value); diff --git a/packages/tinacms/src/admin/pages/CollectionCreatePage.tsx b/packages/tinacms/src/admin/pages/CollectionCreatePage.tsx index f78b8ce287..a919e85de0 100644 --- a/packages/tinacms/src/admin/pages/CollectionCreatePage.tsx +++ b/packages/tinacms/src/admin/pages/CollectionCreatePage.tsx @@ -5,7 +5,11 @@ import { resolveForm, } from '@tinacms/schema-tools'; import type { Template } from '@tinacms/schema-tools'; -import { ERR_ALREADY_EXISTS } from '@tinacms/schema-tools'; +import { + ERR_ALREADY_EXISTS, + RELATIVE_PATH_ALLOWED_CHARS_MESSAGE, + RELATIVE_PATH_REGEX, +} from '@tinacms/schema-tools'; import { BillingWarning, Form, @@ -229,9 +233,8 @@ export const RenderForm = ({ return true; } - const isValid = /^[\.\-_\/a-zA-Z0-9]*$/.test(value); - if (value && !isValid) { - return 'Must contain only a-z, A-Z, 0-9, -, _, ., or /.'; + if (!RELATIVE_PATH_REGEX.test(value)) { + return RELATIVE_PATH_ALLOWED_CHARS_MESSAGE; } // check if the filename is allowed by the collection. if (schemaCollection.match?.exclude || schemaCollection.match?.include) { diff --git a/packages/tinacms/src/admin/pages/CollectionListPage.tsx b/packages/tinacms/src/admin/pages/CollectionListPage.tsx index 9e2c15f305..edbc230b82 100644 --- a/packages/tinacms/src/admin/pages/CollectionListPage.tsx +++ b/packages/tinacms/src/admin/pages/CollectionListPage.tsx @@ -6,7 +6,12 @@ import { Transition, } from '@headlessui/react'; import type { Collection, TinaField } from '@tinacms/schema-tools'; -import { ERR_ALREADY_EXISTS, ERR_HAS_REFERENCES } from '@tinacms/schema-tools'; +import { + ERR_ALREADY_EXISTS, + ERR_HAS_REFERENCES, + RELATIVE_PATH_ALLOWED_CHARS_MESSAGE, + isValidRelativePath, +} from '@tinacms/schema-tools'; import { BaseTextField, Button, @@ -1469,6 +1474,9 @@ const FolderModal = ({ validationRegex, }: FolderModalProps) => { const [isFolderNameValid, setIsFolderNameValid] = useState(false); + const [validationMessage, setValidationMessage] = useState( + null + ); const [isInteracted, setIsInteracted] = useState(false); useEffect(() => { @@ -1476,20 +1484,39 @@ const FolderModal = ({ }, [folderName]); const validateFolderName = (name: string) => { - if (!validationRegex || !name.trim()) { - setIsFolderNameValid(!!name.trim()); - return !!name.trim(); + if (!name.trim()) { + setIsFolderNameValid(false); + setValidationMessage(null); + return false; } - try { - const regex = new RegExp(validationRegex); - const valid = regex.test(name); - setIsFolderNameValid(valid); - return valid; - } catch (error) { + // Baseline mirrors the backend allowlist; a project-level folderNameRegex + // layers on top, so the UI can only ever be stricter than the resolver. + if (!isValidRelativePath(name)) { setIsFolderNameValid(false); + setValidationMessage(RELATIVE_PATH_ALLOWED_CHARS_MESSAGE); return false; } + + if (validationRegex) { + let passesCustomRegex = false; + try { + passesCustomRegex = new RegExp(validationRegex).test(name); + } catch (error) { + passesCustomRegex = false; + } + if (!passesCustomRegex) { + setIsFolderNameValid(false); + setValidationMessage( + 'Folder name is not valid, please enter a valid folder name.' + ); + return false; + } + } + + setIsFolderNameValid(true); + setValidationMessage(null); + return true; }; return ( @@ -1502,7 +1529,7 @@ const FolderModal = ({ placeholder='Enter the name of the new folder' value={folderName} className={`mb-4 ${ - !isFolderNameValid && isInteracted ? 'border-red-500' : '' + isInteracted && validationMessage ? 'border-red-500' : '' }`} onChange={(event) => { setFolderName(event.target.value); @@ -1510,10 +1537,8 @@ const FolderModal = ({ validateFolderName(event.target.value); }} /> - {!isFolderNameValid && isInteracted && ( -

- Folder name is not valid – please enter a valid folder name. -

+ {isInteracted && validationMessage && ( +

{validationMessage}

)} diff --git a/playwright/tina-playwright/tests/action/create-folder.spec.ts b/playwright/tina-playwright/tests/action/create-folder.spec.ts new file mode 100644 index 0000000000..4d8ed00a9d --- /dev/null +++ b/playwright/tina-playwright/tests/action/create-folder.spec.ts @@ -0,0 +1,31 @@ +import { test, expect } from "../../fixtures/test-content"; + +test.describe("Create Folder", () => { + test.beforeEach(async ({ page }) => { + await page.goto("/admin/index.html#/collections/author/~", { + waitUntil: "domcontentloaded", + }); + //Dismiss the page-load dialog to enter edit mode (see create-blog.spec.ts) + page.click('button[data-test="enter-edit-mode"]'); + }); + + test("should reject folder names with spaces", async ({ page }) => { + await page.click("text=Add Folder"); + + const folderInput = page.locator( + 'input[placeholder="Enter the name of the new folder"]' + ); + await folderInput.waitFor({ state: "visible" }); + await folderInput.fill("a b c d"); + + const validationError = page.locator( + "text=Must contain only a-z, A-Z, 0-9, -, _, ., or /." + ); + await expect(validationError).toBeVisible(); + + // This Button disables via pointer-events-none styling, not a native disabled attr. + await expect(page.locator('button:has-text("Create")')).toHaveClass( + /pointer-events-none/ + ); + }); +}); From aef9de0dabff72e0815ea6dfc03ce720dd8c4a7b Mon Sep 17 00:00:00 2001 From: "Josh Berman [SSW]" <137844305+joshbermanssw@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:00:09 +1000 Subject: [PATCH 4/8] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20@tailwindcss/ty?= =?UTF-8?q?pography=20to=200.5.20=20(#7157)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claude Fable 5 --- .changeset/light-buses-repair.md | 5 +++++ pnpm-lock.yaml | 30 +++++++++++++++--------------- pnpm-workspace.yaml | 2 +- 3 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 .changeset/light-buses-repair.md diff --git a/.changeset/light-buses-repair.md b/.changeset/light-buses-repair.md new file mode 100644 index 0000000000..ee643f6e18 --- /dev/null +++ b/.changeset/light-buses-repair.md @@ -0,0 +1,5 @@ +--- +'@tinacms/cli': patch +--- + +Bump `@tailwindcss/typography` to 0.5.20 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5d139f6f0..b023b8c3e2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -127,8 +127,8 @@ catalogs: specifier: ^0.1.1 version: 0.1.1 '@tailwindcss/typography': - specifier: ^0.5.16 - version: 0.5.19 + specifier: ^0.5.20 + version: 0.5.20 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.1 @@ -709,7 +709,7 @@ importers: version: 5.0.5(@types/node@25.1.0)(@types/react-dom@18.3.7(@types/react@18.3.27))(@types/react@18.3.27)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@4.2.1) + version: 0.5.20(tailwindcss@4.2.1) '@tinacms/datalayer': specifier: workspace:* version: link:../../../packages/@tinacms/datalayer @@ -791,7 +791,7 @@ importers: version: 10.1.1(astro@6.3.7(@azure/storage-blob@12.29.1)(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.53.4)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@4.2.1) + version: 0.5.20(tailwindcss@4.2.1) '@tailwindcss/vite': specifier: ^4.2.1 version: 4.2.4(vite@7.3.3(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) @@ -870,7 +870,7 @@ importers: dependencies: '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@4.2.1) + version: 0.5.20(tailwindcss@4.2.1) '@tinacms/datalayer': specifier: workspace:* version: link:../../../packages/@tinacms/datalayer @@ -934,7 +934,7 @@ importers: dependencies: '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@4.1.18) + version: 0.5.20(tailwindcss@4.1.18) '@tinacms/datalayer': specifier: workspace:* version: link:../../../packages/@tinacms/datalayer @@ -1013,7 +1013,7 @@ importers: version: 22.0.1 '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@3.4.19(yaml@2.8.2)) + version: 0.5.20(tailwindcss@3.4.19(yaml@2.8.2)) '@tinacms/datalayer': specifier: workspace:* version: link:../../../packages/@tinacms/datalayer @@ -1101,7 +1101,7 @@ importers: dependencies: '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@4.2.1) + version: 0.5.20(tailwindcss@4.2.1) '@tinacms/datalayer': specifier: workspace:* version: link:../../../packages/@tinacms/datalayer @@ -1350,7 +1350,7 @@ importers: version: 0.1.1(tailwindcss@3.4.19(yaml@2.8.2)) '@tailwindcss/typography': specifier: 'catalog:' - version: 0.5.19(tailwindcss@3.4.19(yaml@2.8.2)) + version: 0.5.20(tailwindcss@3.4.19(yaml@2.8.2)) '@tinacms/app': specifier: workspace:* version: link:../app @@ -7712,10 +7712,10 @@ packages: '@tailwindcss/postcss@4.2.1': resolution: {integrity: sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==} - '@tailwindcss/typography@0.5.19': - resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} + '@tailwindcss/typography@0.5.20': + resolution: {integrity: sha512-hwbzQuNUfcPvbegQFatVPl/MY/tcM9KLl963hQ5laJKPh81TEZ1+dNG9PirGvcaDBkp+BCshExAyKVPW91dozw==} peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + tailwindcss: '>=3.0.0 || >=4.0.0 || insiders' '@tailwindcss/vite@4.2.4': resolution: {integrity: sha512-pCvohwOCspk3ZFn6eJzrrX3g4n2JY73H6MmYC87XfGPyTty4YsCjYTMArRZm/zOI8dIt3+EcrLHAFPe5A4bgtw==} @@ -22215,17 +22215,17 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.2.1 - '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.8.2))': + '@tailwindcss/typography@0.5.20(tailwindcss@3.4.19(yaml@2.8.2))': dependencies: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.19(yaml@2.8.2) - '@tailwindcss/typography@0.5.19(tailwindcss@4.1.18)': + '@tailwindcss/typography@0.5.20(tailwindcss@4.1.18)': dependencies: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.18 - '@tailwindcss/typography@0.5.19(tailwindcss@4.2.1)': + '@tailwindcss/typography@0.5.20(tailwindcss@4.2.1)': dependencies: postcss-selector-parser: 6.0.10 tailwindcss: 4.2.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ae9a8e8c1c..8adb5fa051 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -75,7 +75,7 @@ catalog: "@svgr/webpack": ^8.1.0 "@tailwindcss/aspect-ratio": ^0.4.2 "@tailwindcss/container-queries": ^0.1.1 - "@tailwindcss/typography": ^0.5.16 + "@tailwindcss/typography": ^0.5.20 "@testing-library/dom": ^10.4.0 "@testing-library/jest-dom": ^6.7.0 "@testing-library/react": ^16.2.0 From 541b02376d091b5f25cd172d68d0e5cd2b9fc586 Mon Sep 17 00:00:00 2001 From: "Josh Berman [SSW]" <137844305+joshbermanssw@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:00:22 +1000 Subject: [PATCH 5/8] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20postcss=20to=20?= =?UTF-8?q?8.5.16=20(#7156)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claude Fable 5 --- examples/astro/kitchen-sink/package.json | 2 +- examples/hugo/kitchen-sink/package.json | 2 +- examples/next/kitchen-sink/package.json | 2 +- .../next/tina-self-hosted-demo/package.json | 2 +- examples/react/kitchen-sink/package.json | 2 +- pnpm-lock.yaml | 84 ++++++++++++------- pnpm-workspace.yaml | 1 + 7 files changed, 58 insertions(+), 37 deletions(-) diff --git a/examples/astro/kitchen-sink/package.json b/examples/astro/kitchen-sink/package.json index f532402694..36ec90ea32 100644 --- a/examples/astro/kitchen-sink/package.json +++ b/examples/astro/kitchen-sink/package.json @@ -42,7 +42,7 @@ "@playwright/test": "catalog:", "autoprefixer": "catalog:", "cross-env": "^7.0.3", - "postcss": "^8.5.2", + "postcss": "catalog:", "tailwindcss": "^4.0.0", "typescript": "^5.7.3" } diff --git a/examples/hugo/kitchen-sink/package.json b/examples/hugo/kitchen-sink/package.json index 1b95060a14..02e060b9dc 100644 --- a/examples/hugo/kitchen-sink/package.json +++ b/examples/hugo/kitchen-sink/package.json @@ -33,7 +33,7 @@ "autoprefixer": "catalog:", "cross-env": "^7.0.3", "hugo-extended": "^0.158.0", - "postcss": "^8.5.2", + "postcss": "catalog:", "postcss-cli": "^11.0.0", "tailwindcss": "^4.0.0", "@playwright/test": "catalog:", diff --git a/examples/next/kitchen-sink/package.json b/examples/next/kitchen-sink/package.json index cc61ce1812..7c25590359 100644 --- a/examples/next/kitchen-sink/package.json +++ b/examples/next/kitchen-sink/package.json @@ -39,7 +39,7 @@ "@types/node": "^25.1.0", "autoprefixer": "catalog:", "cross-env": "^7.0.3", - "postcss": "^8.5.2", + "postcss": "catalog:", "tailwindcss": "^4.0.0", "typescript": "^5.7.3" } diff --git a/examples/next/tina-self-hosted-demo/package.json b/examples/next/tina-self-hosted-demo/package.json index 743dc9fe1d..f854b1cc71 100644 --- a/examples/next/tina-self-hosted-demo/package.json +++ b/examples/next/tina-self-hosted-demo/package.json @@ -40,7 +40,7 @@ "autoprefixer": "catalog:", "cross-env": "^7.0.3", "eslint": "^8.57.1", - "postcss": "^8.5.2", + "postcss": "catalog:", "postcss-import": "catalog:", "postcss-nesting": "catalog:", "tailwindcss": "^3.4.17", diff --git a/examples/react/kitchen-sink/package.json b/examples/react/kitchen-sink/package.json index 82b6fb17a5..b35a670561 100644 --- a/examples/react/kitchen-sink/package.json +++ b/examples/react/kitchen-sink/package.json @@ -36,7 +36,7 @@ "@vitejs/plugin-react": "^4.3.0", "autoprefixer": "catalog:", "cross-env": "^7.0.3", - "postcss": "^8.5.2", + "postcss": "catalog:", "tailwindcss": "^4.0.0", "@playwright/test": "^1.49.0", "typescript": "^5.7.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b023b8c3e2..6055bc0c6e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -519,6 +519,9 @@ catalogs: picomatch-browser: specifier: 2.2.6 version: 2.2.6 + postcss: + specifier: ^8.5.16 + version: 8.5.16 postcss-import: specifier: ^14.1.0 version: 14.1.0 @@ -767,13 +770,13 @@ importers: version: 18.3.7(@types/react@18.3.27) autoprefixer: specifier: 'catalog:' - version: 10.4.23(postcss@8.5.6) + version: 10.4.23(postcss@8.5.16) cross-env: specifier: ^7.0.3 version: 7.0.3 postcss: - specifier: ^8.5.2 - version: 8.5.6 + specifier: 'catalog:' + version: 8.5.16 tailwindcss: specifier: ^4.0.0 version: 4.2.1 @@ -910,7 +913,7 @@ importers: version: link:../../../packages/@tinacms/scripts autoprefixer: specifier: 'catalog:' - version: 10.4.23(postcss@8.5.6) + version: 10.4.23(postcss@8.5.16) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -918,11 +921,11 @@ importers: specifier: ^0.158.0 version: 0.158.0 postcss: - specifier: ^8.5.2 - version: 8.5.6 + specifier: 'catalog:' + version: 8.5.16 postcss-cli: specifier: ^11.0.0 - version: 11.0.1(jiti@2.6.1)(postcss@8.5.6) + version: 11.0.1(jiti@2.6.1)(postcss@8.5.16) tailwindcss: specifier: ^4.0.0 version: 4.2.1 @@ -989,13 +992,13 @@ importers: version: 25.1.0 autoprefixer: specifier: 'catalog:' - version: 10.4.23(postcss@8.5.6) + version: 10.4.23(postcss@8.5.16) cross-env: specifier: ^7.0.3 version: 7.0.3 postcss: - specifier: ^8.5.2 - version: 8.5.6 + specifier: 'catalog:' + version: 8.5.16 tailwindcss: specifier: ^4.0.0 version: 4.1.18 @@ -1074,7 +1077,7 @@ importers: version: 5.62.0(eslint@8.57.1)(typescript@5.9.3) autoprefixer: specifier: 'catalog:' - version: 10.4.23(postcss@8.5.6) + version: 10.4.23(postcss@8.5.16) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -1082,14 +1085,14 @@ importers: specifier: ^8.57.1 version: 8.57.1 postcss: - specifier: ^8.5.2 - version: 8.5.6 + specifier: 'catalog:' + version: 8.5.16 postcss-import: specifier: 'catalog:' - version: 14.1.0(postcss@8.5.6) + version: 14.1.0(postcss@8.5.16) postcss-nesting: specifier: 'catalog:' - version: 10.2.0(postcss@8.5.6) + version: 10.2.0(postcss@8.5.16) tailwindcss: specifier: ^3.4.17 version: 3.4.19(yaml@2.8.2) @@ -1162,13 +1165,13 @@ importers: version: 4.7.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) autoprefixer: specifier: 'catalog:' - version: 10.4.23(postcss@8.5.6) + version: 10.4.23(postcss@8.5.16) cross-env: specifier: ^7.0.3 version: 7.0.3 postcss: - specifier: ^8.5.2 - version: 8.5.6 + specifier: 'catalog:' + version: 8.5.16 tailwindcss: specifier: ^4.0.0 version: 4.2.1 @@ -13081,6 +13084,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@5.1.6: resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} engines: {node: ^18 || >=20} @@ -13698,6 +13706,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -24003,13 +24015,13 @@ snapshots: auto-bind@4.0.0: {} - autoprefixer@10.4.23(postcss@8.5.6): + autoprefixer@10.4.23(postcss@8.5.16): dependencies: browserslist: 4.28.1 caniuse-lite: 1.0.30001760 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.16 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -29784,6 +29796,8 @@ snapshots: nanoid@3.3.11: {} + nanoid@3.3.15: {} + nanoid@5.1.6: {} napi-build-utils@2.0.0: {} @@ -30403,15 +30417,15 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-cli@11.0.1(jiti@2.6.1)(postcss@8.5.6): + postcss-cli@11.0.1(jiti@2.6.1)(postcss@8.5.16): dependencies: chokidar: 3.6.0 dependency-graph: 1.0.0 fs-extra: 11.3.2 picocolors: 1.1.1 - postcss: 8.5.6 - postcss-load-config: 5.1.0(jiti@2.6.1)(postcss@8.5.6) - postcss-reporter: 7.1.0(postcss@8.5.6) + postcss: 8.5.16 + postcss-load-config: 5.1.0(jiti@2.6.1)(postcss@8.5.16) + postcss-reporter: 7.1.0(postcss@8.5.16) pretty-hrtime: 1.0.3 read-cache: 1.0.0 slash: 5.1.0 @@ -30421,9 +30435,9 @@ snapshots: - jiti - tsx - postcss-import@14.1.0(postcss@8.5.6): + postcss-import@14.1.0(postcss@8.5.16): dependencies: - postcss: 8.5.6 + postcss: 8.5.16 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.11 @@ -30440,13 +30454,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@5.1.0(jiti@2.6.1)(postcss@8.5.6): + postcss-load-config@5.1.0(jiti@2.6.1)(postcss@8.5.16): dependencies: lilconfig: 3.1.3 yaml: 2.8.2 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.6 + postcss: 8.5.16 postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): dependencies: @@ -30469,16 +30483,16 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-nesting@10.2.0(postcss@8.5.6): + postcss-nesting@10.2.0(postcss@8.5.16): dependencies: '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) - postcss: 8.5.6 + postcss: 8.5.16 postcss-selector-parser: 6.1.2 - postcss-reporter@7.1.0(postcss@8.5.6): + postcss-reporter@7.1.0(postcss@8.5.16): dependencies: picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.16 thenby: 1.3.4 postcss-selector-parser@6.0.10: @@ -30499,6 +30513,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.16: + dependencies: + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.6: dependencies: nanoid: 3.3.11 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 8adb5fa051..cf53c90c15 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -213,6 +213,7 @@ catalog: parse-entities: 4.0.1 picomatch: ^4.0.2 picomatch-browser: 2.2.6 + postcss: ^8.5.16 postcss-import: ^14.1.0 postcss-nesting: ^10.2.0 prettier: ^2.8.8 From 2df0c878ecd605fa9826fbb979dd63d699937e72 Mon Sep 17 00:00:00 2001 From: "Josh Berman [SSW]" <137844305+joshbermanssw@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:06:34 +1000 Subject: [PATCH 6/8] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20@playwright/tes?= =?UTF-8?q?t=20to=201.61.1=20(#7155)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## TL;DR Bumps the `@playwright/test` catalog entry from `^1.50.1` to `^1.61.1` — four additive minor releases; none of the removed deprecations (`_react=`/`_vue=` selectors, `:light` suffix, `devtools` launch option) appear in our test code. Also switches `examples/react/kitchen-sink` from a hardcoded `^1.49.0` to `catalog:` so all seven consumers share the workspace version. Dev/test-only dependency; both test suites compile and list cleanly on 1.61.1 (`playwright test --list`), and the existing Playwright E2E job covers the rest. ## Links - Dependency audit: tinacms/tinacloud#3820 Co-authored-by: Claude Fable 5 --- examples/react/kitchen-sink/package.json | 2 +- pnpm-lock.yaml | 114 +++++++++++------------ pnpm-workspace.yaml | 2 +- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/examples/react/kitchen-sink/package.json b/examples/react/kitchen-sink/package.json index b35a670561..9a82e38c67 100644 --- a/examples/react/kitchen-sink/package.json +++ b/examples/react/kitchen-sink/package.json @@ -38,7 +38,7 @@ "cross-env": "^7.0.3", "postcss": "catalog:", "tailwindcss": "^4.0.0", - "@playwright/test": "^1.49.0", + "@playwright/test": "catalog:", "typescript": "^5.7.3", "vite": "^6.0.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6055bc0c6e..919d76072c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,8 +82,8 @@ catalogs: specifier: ^22.0.1 version: 22.0.1 '@playwright/test': - specifier: ^1.50.1 - version: 1.57.0 + specifier: ^1.61.1 + version: 1.61.1 '@radix-ui/react-dialog': specifier: ^1.1.18 version: 1.1.18 @@ -746,7 +746,7 @@ importers: version: 1.9.4 '@playwright/test': specifier: 'catalog:' - version: 1.57.0 + version: 1.61.1 '@tailwindcss/postcss': specifier: ^4.2.1 version: 4.2.1 @@ -834,7 +834,7 @@ importers: version: 1.9.4 '@playwright/test': specifier: 'catalog:' - version: 1.57.0 + version: 1.61.1 '@tinacms/app': specifier: workspace:* version: link:../../../packages/@tinacms/app @@ -898,7 +898,7 @@ importers: version: 1.9.4 '@playwright/test': specifier: 'catalog:' - version: 1.57.0 + version: 1.61.1 '@tailwindcss/postcss': specifier: ^4.2.1 version: 4.2.1 @@ -952,7 +952,7 @@ importers: version: 0.0.4(mongodb@4.17.2) next: specifier: 15.5.12 - version: 15.5.12(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 15.5.12(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -974,7 +974,7 @@ importers: version: 1.9.4 '@playwright/test': specifier: 'catalog:' - version: 1.57.0 + version: 1.61.1 '@tailwindcss/postcss': specifier: ^4.2.1 version: 4.2.1 @@ -1028,10 +1028,10 @@ importers: version: 0.0.3 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) next-auth: specifier: ^4.24.11 - version: 4.24.13(next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.24.13(next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -1137,8 +1137,8 @@ importers: specifier: 'catalog:' version: 1.9.4 '@playwright/test': - specifier: ^1.49.0 - version: 1.57.0 + specifier: 'catalog:' + version: 1.61.1 '@tailwindcss/postcss': specifier: ^4.2.1 version: 4.2.1 @@ -1284,7 +1284,7 @@ importers: version: 29.7.0(@types/node@22.19.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.17)(typescript@5.9.3)) next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.97.3) ts-jest: specifier: 'catalog:' version: 29.4.6(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.19.17)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.17)(typescript@5.9.3)))(typescript@5.9.3) @@ -1668,7 +1668,7 @@ importers: version: 7.4.7 '@vitest/coverage-v8': specifier: 0.32.4 - version: 0.32.4(vitest@0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.57.0)(sass@1.97.3)(terser@5.46.0)) + version: 0.32.4(vitest@0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.61.1)(sass@1.97.3)(terser@5.46.0)) jest-file-snapshot: specifier: ^0.5.0 version: 0.5.0 @@ -1683,7 +1683,7 @@ importers: version: 4.5.14(@types/node@22.19.3)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0) vitest: specifier: ^0.32.4 - version: 0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.57.0)(sass@1.97.3)(terser@5.46.0) + version: 0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.61.1)(sass@1.97.3)(terser@5.46.0) zod: specifier: 'catalog:' version: 3.25.76 @@ -1819,7 +1819,7 @@ importers: version: 4.5.14(@types/node@22.19.3)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0) vitest: specifier: ^0.32.4 - version: 0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.57.0)(sass@1.97.3)(terser@5.46.0) + version: 0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.61.1)(sass@1.97.3)(terser@5.46.0) packages/@tinacms/metrics: devDependencies: @@ -2068,7 +2068,7 @@ importers: version: 22.19.3 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -2105,7 +2105,7 @@ importers: version: 22.19.3 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -2142,7 +2142,7 @@ importers: version: 22.19.3 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -2182,7 +2182,7 @@ importers: version: 18.3.27 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -2495,7 +2495,7 @@ importers: version: 3.3.0 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -2538,10 +2538,10 @@ importers: version: link:../@tinacms/scripts next: specifier: ^15.5.16 - version: 15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3) + version: 15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3) next-auth: specifier: ^4.24.13 - version: 4.24.13(next@15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@18.3.1(react@19.2.3))(react@19.2.3) + version: 4.24.13(next@15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@18.3.1(react@19.2.3))(react@19.2.3) react: specifier: ^19.2.3 version: 19.2.3 @@ -2651,7 +2651,7 @@ importers: devDependencies: '@playwright/test': specifier: 'catalog:' - version: 1.57.0 + version: 1.61.1 playwright/tina-playwright: dependencies: @@ -2660,7 +2660,7 @@ importers: version: 1.7.5 next: specifier: 14.2.35 - version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + version: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) react: specifier: ^18.3.1 version: 18.3.1 @@ -2676,7 +2676,7 @@ importers: devDependencies: '@playwright/test': specifier: 'catalog:' - version: 1.57.0 + version: 1.61.1 '@tinacms/cli': specifier: workspace:* version: link:../../packages/@tinacms/cli @@ -2688,7 +2688,7 @@ importers: version: 7.32.0 eslint-config-next: specifier: 12.0.3 - version: 12.0.3(eslint@7.32.0)(next@14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(typescript@5.9.3) + version: 12.0.3(eslint@7.32.0)(next@14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(typescript@5.9.3) packages: @@ -6164,8 +6164,8 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.57.0': - resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} + '@playwright/test@1.61.1': + resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==} engines: {node: '>=18'} hasBin: true @@ -13585,13 +13585,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - playwright-core@1.57.0: - resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} + playwright-core@1.61.1: + resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==} engines: {node: '>=18'} hasBin: true - playwright@1.57.0: - resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} + playwright@1.61.1: + resolution: {integrity: sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==} engines: {node: '>=18'} hasBin: true @@ -20641,9 +20641,9 @@ snapshots: '@pkgr/core@0.2.9': {} - '@playwright/test@1.57.0': + '@playwright/test@1.61.1': dependencies: - playwright: 1.57.0 + playwright: 1.61.1 '@posthog/core@1.22.0': dependencies: @@ -23360,7 +23360,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@0.32.4(vitest@0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.57.0)(sass@1.97.3)(terser@5.46.0))': + '@vitest/coverage-v8@0.32.4(vitest@0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.61.1)(sass@1.97.3)(terser@5.46.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -23373,7 +23373,7 @@ snapshots: std-env: 3.10.0 test-exclude: 6.0.0 v8-to-istanbul: 9.3.0 - vitest: 0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.57.0)(sass@1.97.3)(terser@5.46.0) + vitest: 0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.61.1)(sass@1.97.3)(terser@5.46.0) transitivePeerDependencies: - supports-color @@ -25733,7 +25733,7 @@ snapshots: source-map: 0.6.1 optional: true - eslint-config-next@12.0.3(eslint@7.32.0)(next@14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(typescript@5.9.3): + eslint-config-next@12.0.3(eslint@7.32.0)(next@14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 12.0.3 '@rushstack/eslint-patch': 1.15.0 @@ -25745,7 +25745,7 @@ snapshots: eslint-plugin-jsx-a11y: 6.10.2(eslint@7.32.0) eslint-plugin-react: 7.37.5(eslint@7.32.0) eslint-plugin-react-hooks: 4.6.2(eslint@7.32.0) - next: 14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + next: 14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -29814,13 +29814,13 @@ snapshots: neotraverse@0.6.18: {} - next-auth@4.24.13(next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-auth@4.24.13(next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.6 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) + next: 14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.28.3 @@ -29829,13 +29829,13 @@ snapshots: react-dom: 18.3.1(react@18.3.1) uuid: 8.3.2 - next-auth@4.24.13(next@15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@18.3.1(react@19.2.3))(react@19.2.3): + next-auth@4.24.13(next@15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@18.3.1(react@19.2.3))(react@19.2.3): dependencies: '@babel/runtime': 7.28.6 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3) + next: 15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.28.3 @@ -29844,7 +29844,7 @@ snapshots: react-dom: 18.3.1(react@19.2.3) uuid: 8.3.2 - next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.97.3): + next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.97.3): dependencies: '@next/env': 14.2.35 '@swc/helpers': 0.5.5 @@ -29866,13 +29866,13 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.33 '@next/swc-win32-x64-msvc': 14.2.33 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.57.0 + '@playwright/test': 1.61.1 sass: 1.97.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3): + next@14.2.35(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3): dependencies: '@next/env': 14.2.35 '@swc/helpers': 0.5.5 @@ -29894,13 +29894,13 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.33 '@next/swc-win32-x64-msvc': 14.2.33 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.57.0 + '@playwright/test': 1.61.1 sass: 1.97.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3): + next@14.2.35(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3): dependencies: '@next/env': 14.2.35 '@swc/helpers': 0.5.5 @@ -29922,13 +29922,13 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.33 '@next/swc-win32-x64-msvc': 14.2.33 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.57.0 + '@playwright/test': 1.61.1 sass: 1.97.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@15.5.12(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3): + next@15.5.12(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3): dependencies: '@next/env': 15.5.12 '@swc/helpers': 0.5.15 @@ -29947,14 +29947,14 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.5.12 '@next/swc-win32-x64-msvc': 15.5.12 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.57.0 + '@playwright/test': 1.61.1 sass: 1.97.3 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3): + next@15.5.19(@opentelemetry/api@1.9.0)(@playwright/test@1.61.1)(react-dom@18.3.1(react@19.2.3))(react@19.2.3)(sass@1.97.3): dependencies: '@next/env': 15.5.19 '@swc/helpers': 0.5.15 @@ -29973,7 +29973,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.5.19 '@next/swc-win32-x64-msvc': 15.5.19 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.57.0 + '@playwright/test': 1.61.1 sass: 1.97.3 sharp: 0.34.5 transitivePeerDependencies: @@ -30386,11 +30386,11 @@ snapshots: mlly: 1.8.0 pathe: 2.0.3 - playwright-core@1.57.0: {} + playwright-core@1.61.1: {} - playwright@1.57.0: + playwright@1.61.1: dependencies: - playwright-core: 1.57.0 + playwright-core: 1.61.1 optionalDependencies: fsevents: 2.3.2 @@ -33281,7 +33281,7 @@ snapshots: optionalDependencies: vite: 7.3.3(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vitest@0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.57.0)(sass@1.97.3)(terser@5.46.0): + vitest@0.32.4(happy-dom@15.10.2)(jsdom@15.2.1(bufferutil@4.1.0))(lightningcss@1.32.0)(playwright@1.61.1)(sass@1.97.3)(terser@5.46.0): dependencies: '@types/chai': 4.3.20 '@types/chai-subset': 1.3.6(@types/chai@4.3.20) @@ -33310,7 +33310,7 @@ snapshots: optionalDependencies: happy-dom: 15.10.2 jsdom: 15.2.1(bufferutil@4.1.0) - playwright: 1.57.0 + playwright: 1.61.1 transitivePeerDependencies: - less - lightningcss diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index cf53c90c15..a4ba982628 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -57,7 +57,7 @@ catalog: "@iarna/toml": ^2.2.5 "@monaco-editor/react": 4.7.0-rc.0 "@octokit/rest": ^22.0.1 - "@playwright/test": ^1.50.1 + "@playwright/test": ^1.61.1 "@puppeteer/replay": ^1.3.2 "@radix-ui/react-dialog": ^1.1.18 "@radix-ui/react-dropdown-menu": ^2.1.19 From a1ebeda9fa277b7189bc84e0ffdc75dd455024da Mon Sep 17 00:00:00 2001 From: "release-bot-allow-prs-and-push[bot]" <173871997+release-bot-allow-prs-and-push[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:39:52 +1000 Subject: [PATCH 7/8] Version Packages (#7130) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## tinacms@3.10.0 ### Minor Changes - [#7136](https://github.com/tinacms/tinacms/pull/7136) [`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - editorial workflow - add toggle to switch PRs created between draft and ready to review mode ### Patch Changes - [#7141](https://github.com/tinacms/tinacms/pull/7141) [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Update `@radix-ui/*` dependencies to their latest patch/minor releases and remove the unused `@radix-ui/react-checkbox` dependency - [#7140](https://github.com/tinacms/tinacms/pull/7140) [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Add a PostHog `editorial-workflow-save` event that records which save option was used in the "Save changes to new branch" modal (draft, ready for review, or publish), whether the save succeeded, and the failure reason when it didn't. - [#7138](https://github.com/tinacms/tinacms/pull/7138) [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Editorial workflow: replace the draft / ready-for-review toggle in the "Save changes to new branch" modal with a save-options dropdown (Save draft, Save (ready for review), Save and publish). The split button's main action reflects the editor's last choice (default Save draft, remembered via localStorage), and Save and publish is disabled with a tooltip on protected branches. - [#7131](https://github.com/tinacms/tinacms/pull/7131) [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - move floatingtoolbar for links to a react portal - [#7123](https://github.com/tinacms/tinacms/pull/7123) [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) - [#7143](https://github.com/tinacms/tinacms/pull/7143) [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. - [#7128](https://github.com/tinacms/tinacms/pull/7128) [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626) Thanks [@Aibono1225](https://github.com/Aibono1225)! - Harden message handling in the `useEditState` hook so it validates the sender of incoming `message` events, matching the `isFromAdmin(event, trustedAdminOrigins)` check already used by `useTina`. The hook now also removes its `message` listener on unmount. Legitimate admin→preview behavior is unchanged. - Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: - @tinacms/schema-tools@2.8.3 - @tinacms/mdx@2.1.9 - @tinacms/search@1.2.21 ## @tinacms/app@2.5.8 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 - @tinacms/mdx@2.1.9 ## @tinacms/cli@2.5.3 ### Patch Changes - [#7157](https://github.com/tinacms/tinacms/pull/7157) [`aef9de0`](https://github.com/tinacms/tinacms/commit/aef9de0dabff72e0815ea6dfc03ce720dd8c4a7b) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Bump `@tailwindcss/typography` to 0.5.20 - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 - @tinacms/schema-tools@2.8.3 - @tinacms/graphql@2.4.7 - @tinacms/app@2.5.8 - @tinacms/search@1.2.21 ## @tinacms/datalayer@2.0.27 ### Patch Changes - Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: - @tinacms/graphql@2.4.7 ## @tinacms/graphql@2.4.7 ### Patch Changes - [#7123](https://github.com/tinacms/tinacms/pull/7123) [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) - [#7143](https://github.com/tinacms/tinacms/pull/7143) [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. - Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: - @tinacms/schema-tools@2.8.3 - @tinacms/mdx@2.1.9 ## @tinacms/mdx@2.1.9 ### Patch Changes - Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: - @tinacms/schema-tools@2.8.3 ## @tinacms/schema-tools@2.8.3 ### Patch Changes - [#7123](https://github.com/tinacms/tinacms/pull/7123) [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) - [#7143](https://github.com/tinacms/tinacms/pull/7143) [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. ## @tinacms/search@1.2.21 ### Patch Changes - Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: - @tinacms/schema-tools@2.8.3 - @tinacms/graphql@2.4.7 ## @tinacms/vercel-previews@0.2.17 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 ## create-tina-app@2.1.10 ### Patch Changes - [#7122](https://github.com/tinacms/tinacms/pull/7122) [`90833f1`](https://github.com/tinacms/tinacms/commit/90833f10d700aaa6940a8104c48d47e9b4aabe0a) Thanks [@kulesy](https://github.com/kulesy)! - feat(create-tina-app): stream live install activity on the spinner ## next-tinacms-azure@15.0.0 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 ## next-tinacms-cloudinary@27.0.0 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 ## next-tinacms-dos@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 ## next-tinacms-s3@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 ## tinacms-authjs@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 - @tinacms/schema-tools@2.8.3 ## tinacms-clerk@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: - tinacms@3.10.0 ## tinacms-gitprovider-github@4.1.14 ### Patch Changes - Updated dependencies []: - @tinacms/datalayer@2.0.27 Co-authored-by: Tina Release Bot --- .changeset/blue-vans-begin.md | 5 ---- .changeset/bump-radix-ui.md | 5 ---- .changeset/editorial-workflow-save-metrics.md | 5 ---- .changeset/editorial-workflow-save-options.md | 5 ---- .changeset/gentle-planets-fail.md | 5 ---- .changeset/light-buses-repair.md | 5 ---- .changeset/plenty-eyes-pump.md | 5 ---- .changeset/shared-error-constants.md | 7 ----- .changeset/unify-relative-path-validation.md | 7 ----- .../use-edit-state-origin-validation.md | 5 ---- packages/@tinacms/app/CHANGELOG.md | 8 ++++++ packages/@tinacms/app/package.json | 2 +- packages/@tinacms/cli/CHANGELOG.md | 13 +++++++++ packages/@tinacms/cli/package.json | 2 +- packages/@tinacms/datalayer/CHANGELOG.md | 7 +++++ packages/@tinacms/datalayer/package.json | 2 +- packages/@tinacms/graphql/CHANGELOG.md | 12 +++++++++ packages/@tinacms/graphql/package.json | 2 +- packages/@tinacms/mdx/CHANGELOG.md | 7 +++++ packages/@tinacms/mdx/package.json | 2 +- packages/@tinacms/schema-tools/CHANGELOG.md | 8 ++++++ packages/@tinacms/schema-tools/package.json | 2 +- packages/@tinacms/search/CHANGELOG.md | 8 ++++++ packages/@tinacms/search/package.json | 2 +- .../@tinacms/vercel-previews/CHANGELOG.md | 7 +++++ .../@tinacms/vercel-previews/package.json | 2 +- packages/create-tina-app/CHANGELOG.md | 6 +++++ packages/create-tina-app/package.json | 2 +- packages/next-tinacms-azure/CHANGELOG.md | 7 +++++ packages/next-tinacms-azure/package.json | 2 +- packages/next-tinacms-cloudinary/CHANGELOG.md | 7 +++++ packages/next-tinacms-cloudinary/package.json | 2 +- packages/next-tinacms-dos/CHANGELOG.md | 7 +++++ packages/next-tinacms-dos/package.json | 2 +- packages/next-tinacms-s3/CHANGELOG.md | 7 +++++ packages/next-tinacms-s3/package.json | 2 +- packages/tinacms-authjs/CHANGELOG.md | 8 ++++++ packages/tinacms-authjs/package.json | 2 +- packages/tinacms-clerk/CHANGELOG.md | 7 +++++ packages/tinacms-clerk/package.json | 2 +- .../tinacms-gitprovider-github/CHANGELOG.md | 7 +++++ .../tinacms-gitprovider-github/package.json | 2 +- packages/tinacms/CHANGELOG.md | 27 +++++++++++++++++++ packages/tinacms/package.json | 2 +- 44 files changed, 170 insertions(+), 71 deletions(-) delete mode 100644 .changeset/blue-vans-begin.md delete mode 100644 .changeset/bump-radix-ui.md delete mode 100644 .changeset/editorial-workflow-save-metrics.md delete mode 100644 .changeset/editorial-workflow-save-options.md delete mode 100644 .changeset/gentle-planets-fail.md delete mode 100644 .changeset/light-buses-repair.md delete mode 100644 .changeset/plenty-eyes-pump.md delete mode 100644 .changeset/shared-error-constants.md delete mode 100644 .changeset/unify-relative-path-validation.md delete mode 100644 .changeset/use-edit-state-origin-validation.md diff --git a/.changeset/blue-vans-begin.md b/.changeset/blue-vans-begin.md deleted file mode 100644 index b8e7877bfb..0000000000 --- a/.changeset/blue-vans-begin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tinacms": minor ---- - -editorial workflow - add toggle to switch PRs created between draft and ready to review mode diff --git a/.changeset/bump-radix-ui.md b/.changeset/bump-radix-ui.md deleted file mode 100644 index 0d3cb13ea3..0000000000 --- a/.changeset/bump-radix-ui.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tinacms": patch ---- - -Update `@radix-ui/*` dependencies to their latest patch/minor releases and remove the unused `@radix-ui/react-checkbox` dependency diff --git a/.changeset/editorial-workflow-save-metrics.md b/.changeset/editorial-workflow-save-metrics.md deleted file mode 100644 index a1280c05ca..0000000000 --- a/.changeset/editorial-workflow-save-metrics.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tinacms": patch ---- - -Add a PostHog `editorial-workflow-save` event that records which save option was used in the "Save changes to new branch" modal (draft, ready for review, or publish), whether the save succeeded, and the failure reason when it didn't. diff --git a/.changeset/editorial-workflow-save-options.md b/.changeset/editorial-workflow-save-options.md deleted file mode 100644 index 1d112a9712..0000000000 --- a/.changeset/editorial-workflow-save-options.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tinacms": patch ---- - -Editorial workflow: replace the draft / ready-for-review toggle in the "Save changes to new branch" modal with a save-options dropdown (Save draft, Save (ready for review), Save and publish). The split button's main action reflects the editor's last choice (default Save draft, remembered via localStorage), and Save and publish is disabled with a tooltip on protected branches. diff --git a/.changeset/gentle-planets-fail.md b/.changeset/gentle-planets-fail.md deleted file mode 100644 index 41b280e26b..0000000000 --- a/.changeset/gentle-planets-fail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tinacms": patch ---- - -move floatingtoolbar for links to a react portal diff --git a/.changeset/light-buses-repair.md b/.changeset/light-buses-repair.md deleted file mode 100644 index ee643f6e18..0000000000 --- a/.changeset/light-buses-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tinacms/cli': patch ---- - -Bump `@tailwindcss/typography` to 0.5.20 diff --git a/.changeset/plenty-eyes-pump.md b/.changeset/plenty-eyes-pump.md deleted file mode 100644 index 2378bdf038..0000000000 --- a/.changeset/plenty-eyes-pump.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"create-tina-app": patch ---- - -feat(create-tina-app): stream live install activity on the spinner diff --git a/.changeset/shared-error-constants.md b/.changeset/shared-error-constants.md deleted file mode 100644 index f2cf134b48..0000000000 --- a/.changeset/shared-error-constants.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@tinacms/schema-tools": patch -"@tinacms/graphql": patch -"tinacms": patch ---- - -refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) diff --git a/.changeset/unify-relative-path-validation.md b/.changeset/unify-relative-path-validation.md deleted file mode 100644 index 9a96c64d23..0000000000 --- a/.changeset/unify-relative-path-validation.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@tinacms/schema-tools": patch -"@tinacms/graphql": patch -"tinacms": patch ---- - -Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. diff --git a/.changeset/use-edit-state-origin-validation.md b/.changeset/use-edit-state-origin-validation.md deleted file mode 100644 index 67a3de311d..0000000000 --- a/.changeset/use-edit-state-origin-validation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"tinacms": patch ---- - -Harden message handling in the `useEditState` hook so it validates the sender of incoming `message` events, matching the `isFromAdmin(event, trustedAdminOrigins)` check already used by `useTina`. The hook now also removes its `message` listener on unmount. Legitimate admin→preview behavior is unchanged. diff --git a/packages/@tinacms/app/CHANGELOG.md b/packages/@tinacms/app/CHANGELOG.md index c2d4955a1e..55aa0c42dc 100644 --- a/packages/@tinacms/app/CHANGELOG.md +++ b/packages/@tinacms/app/CHANGELOG.md @@ -1,5 +1,13 @@ # @tinacms/app +## 2.5.8 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + - @tinacms/mdx@2.1.9 + ## 2.5.7 ### Patch Changes diff --git a/packages/@tinacms/app/package.json b/packages/@tinacms/app/package.json index 7062413d7f..6f707aee40 100644 --- a/packages/@tinacms/app/package.json +++ b/packages/@tinacms/app/package.json @@ -1,6 +1,6 @@ { "name": "@tinacms/app", - "version": "2.5.7", + "version": "2.5.8", "main": "src/main.tsx", "files": [ "src", diff --git a/packages/@tinacms/cli/CHANGELOG.md b/packages/@tinacms/cli/CHANGELOG.md index fa7109761e..b484a18e58 100644 --- a/packages/@tinacms/cli/CHANGELOG.md +++ b/packages/@tinacms/cli/CHANGELOG.md @@ -1,5 +1,18 @@ # tinacms-cli +## 2.5.3 + +### Patch Changes + +- [#7157](https://github.com/tinacms/tinacms/pull/7157) [`aef9de0`](https://github.com/tinacms/tinacms/commit/aef9de0dabff72e0815ea6dfc03ce720dd8c4a7b) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Bump `@tailwindcss/typography` to 0.5.20 + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + - @tinacms/schema-tools@2.8.3 + - @tinacms/graphql@2.4.7 + - @tinacms/app@2.5.8 + - @tinacms/search@1.2.21 + ## 2.5.2 ### Patch Changes diff --git a/packages/@tinacms/cli/package.json b/packages/@tinacms/cli/package.json index 8b839eed4b..23c6c907fe 100644 --- a/packages/@tinacms/cli/package.json +++ b/packages/@tinacms/cli/package.json @@ -1,7 +1,7 @@ { "name": "@tinacms/cli", "type": "module", - "version": "2.5.2", + "version": "2.5.3", "main": "dist/index.js", "typings": "dist/index.d.ts", "files": [ diff --git a/packages/@tinacms/datalayer/CHANGELOG.md b/packages/@tinacms/datalayer/CHANGELOG.md index d61e12866b..b1995470c0 100644 --- a/packages/@tinacms/datalayer/CHANGELOG.md +++ b/packages/@tinacms/datalayer/CHANGELOG.md @@ -1,5 +1,12 @@ # tina-graphql +## 2.0.27 + +### Patch Changes + +- Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: + - @tinacms/graphql@2.4.7 + ## 2.0.26 ### Patch Changes diff --git a/packages/@tinacms/datalayer/package.json b/packages/@tinacms/datalayer/package.json index 79cf1f9ef2..5968cd4c9f 100644 --- a/packages/@tinacms/datalayer/package.json +++ b/packages/@tinacms/datalayer/package.json @@ -1,7 +1,7 @@ { "name": "@tinacms/datalayer", "type": "module", - "version": "2.0.26", + "version": "2.0.27", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ diff --git a/packages/@tinacms/graphql/CHANGELOG.md b/packages/@tinacms/graphql/CHANGELOG.md index 728fa18d2f..7f52705e64 100644 --- a/packages/@tinacms/graphql/CHANGELOG.md +++ b/packages/@tinacms/graphql/CHANGELOG.md @@ -1,5 +1,17 @@ # tina-graphql +## 2.4.7 + +### Patch Changes + +- [#7123](https://github.com/tinacms/tinacms/pull/7123) [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) + +- [#7143](https://github.com/tinacms/tinacms/pull/7143) [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. + +- Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: + - @tinacms/schema-tools@2.8.3 + - @tinacms/mdx@2.1.9 + ## 2.4.6 ### Patch Changes diff --git a/packages/@tinacms/graphql/package.json b/packages/@tinacms/graphql/package.json index 0c66dd836d..c4522bbfc6 100644 --- a/packages/@tinacms/graphql/package.json +++ b/packages/@tinacms/graphql/package.json @@ -1,7 +1,7 @@ { "name": "@tinacms/graphql", "type": "module", - "version": "2.4.6", + "version": "2.4.7", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/@tinacms/mdx/CHANGELOG.md b/packages/@tinacms/mdx/CHANGELOG.md index 29c70d1e00..8c74772dd1 100644 --- a/packages/@tinacms/mdx/CHANGELOG.md +++ b/packages/@tinacms/mdx/CHANGELOG.md @@ -1,5 +1,12 @@ # @tinacms/mdx +## 2.1.9 + +### Patch Changes + +- Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: + - @tinacms/schema-tools@2.8.3 + ## 2.1.8 ### Patch Changes diff --git a/packages/@tinacms/mdx/package.json b/packages/@tinacms/mdx/package.json index 5cfdbe4652..ce32ba173a 100644 --- a/packages/@tinacms/mdx/package.json +++ b/packages/@tinacms/mdx/package.json @@ -1,6 +1,6 @@ { "name": "@tinacms/mdx", - "version": "2.1.8", + "version": "2.1.9", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/@tinacms/schema-tools/CHANGELOG.md b/packages/@tinacms/schema-tools/CHANGELOG.md index 5d00756e5c..627ce7dffb 100644 --- a/packages/@tinacms/schema-tools/CHANGELOG.md +++ b/packages/@tinacms/schema-tools/CHANGELOG.md @@ -1,5 +1,13 @@ # @tinacms/schema-tools +## 2.8.3 + +### Patch Changes + +- [#7123](https://github.com/tinacms/tinacms/pull/7123) [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) + +- [#7143](https://github.com/tinacms/tinacms/pull/7143) [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. + ## 2.8.2 ### Patch Changes diff --git a/packages/@tinacms/schema-tools/package.json b/packages/@tinacms/schema-tools/package.json index 388dca2917..014f61ceae 100644 --- a/packages/@tinacms/schema-tools/package.json +++ b/packages/@tinacms/schema-tools/package.json @@ -1,7 +1,7 @@ { "name": "@tinacms/schema-tools", "type": "module", - "version": "2.8.2", + "version": "2.8.3", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ diff --git a/packages/@tinacms/search/CHANGELOG.md b/packages/@tinacms/search/CHANGELOG.md index 1ab6740149..5b739f897d 100644 --- a/packages/@tinacms/search/CHANGELOG.md +++ b/packages/@tinacms/search/CHANGELOG.md @@ -1,5 +1,13 @@ # @tinacms/search +## 1.2.21 + +### Patch Changes + +- Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: + - @tinacms/schema-tools@2.8.3 + - @tinacms/graphql@2.4.7 + ## 1.2.20 ### Patch Changes diff --git a/packages/@tinacms/search/package.json b/packages/@tinacms/search/package.json index 073d062859..06aa792a15 100644 --- a/packages/@tinacms/search/package.json +++ b/packages/@tinacms/search/package.json @@ -1,7 +1,7 @@ { "name": "@tinacms/search", "type": "module", - "version": "1.2.20", + "version": "1.2.21", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ diff --git a/packages/@tinacms/vercel-previews/CHANGELOG.md b/packages/@tinacms/vercel-previews/CHANGELOG.md index 0a46b0a8ac..1a447e99ab 100644 --- a/packages/@tinacms/vercel-previews/CHANGELOG.md +++ b/packages/@tinacms/vercel-previews/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 0.2.17 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + ## 0.2.16 ### Patch Changes diff --git a/packages/@tinacms/vercel-previews/package.json b/packages/@tinacms/vercel-previews/package.json index f88aec4150..c3c5478920 100644 --- a/packages/@tinacms/vercel-previews/package.json +++ b/packages/@tinacms/vercel-previews/package.json @@ -1,7 +1,7 @@ { "name": "@tinacms/vercel-previews", "type": "module", - "version": "0.2.16", + "version": "0.2.17", "main": "dist/index.js", "types": "dist/index.d.ts", "keywords": [ diff --git a/packages/create-tina-app/CHANGELOG.md b/packages/create-tina-app/CHANGELOG.md index 930f67864d..8e1402c05b 100644 --- a/packages/create-tina-app/CHANGELOG.md +++ b/packages/create-tina-app/CHANGELOG.md @@ -1,5 +1,11 @@ # create-tina-app +## 2.1.10 + +### Patch Changes + +- [#7122](https://github.com/tinacms/tinacms/pull/7122) [`90833f1`](https://github.com/tinacms/tinacms/commit/90833f10d700aaa6940a8104c48d47e9b4aabe0a) Thanks [@kulesy](https://github.com/kulesy)! - feat(create-tina-app): stream live install activity on the spinner + ## 2.1.9 ### Patch Changes diff --git a/packages/create-tina-app/package.json b/packages/create-tina-app/package.json index 2b99cdb5c5..967d35939e 100644 --- a/packages/create-tina-app/package.json +++ b/packages/create-tina-app/package.json @@ -1,6 +1,6 @@ { "name": "create-tina-app", - "version": "2.1.9", + "version": "2.1.10", "type": "module", "main": "dist/index.js", "files": [ diff --git a/packages/next-tinacms-azure/CHANGELOG.md b/packages/next-tinacms-azure/CHANGELOG.md index 829fb08aad..63cc3f2a19 100644 --- a/packages/next-tinacms-azure/CHANGELOG.md +++ b/packages/next-tinacms-azure/CHANGELOG.md @@ -1,5 +1,12 @@ # next-tinacms-azure +## 15.0.0 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + ## 14.0.4 ### Patch Changes diff --git a/packages/next-tinacms-azure/package.json b/packages/next-tinacms-azure/package.json index 9a67b76d0c..9a43370813 100644 --- a/packages/next-tinacms-azure/package.json +++ b/packages/next-tinacms-azure/package.json @@ -1,7 +1,7 @@ { "name": "next-tinacms-azure", "type": "module", - "version": "14.0.4", + "version": "15.0.0", "description": "", "main": "dist/index.js", "module": "./dist/index.js", diff --git a/packages/next-tinacms-cloudinary/CHANGELOG.md b/packages/next-tinacms-cloudinary/CHANGELOG.md index a7b0beb1ba..d71e9601be 100644 --- a/packages/next-tinacms-cloudinary/CHANGELOG.md +++ b/packages/next-tinacms-cloudinary/CHANGELOG.md @@ -1,5 +1,12 @@ # next-tinacms-cloudinary +## 27.0.0 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + ## 26.0.4 ### Patch Changes diff --git a/packages/next-tinacms-cloudinary/package.json b/packages/next-tinacms-cloudinary/package.json index 3fee39488e..837514c6a7 100644 --- a/packages/next-tinacms-cloudinary/package.json +++ b/packages/next-tinacms-cloudinary/package.json @@ -1,7 +1,7 @@ { "name": "next-tinacms-cloudinary", "type": "module", - "version": "26.0.4", + "version": "27.0.0", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/next-tinacms-dos/CHANGELOG.md b/packages/next-tinacms-dos/CHANGELOG.md index 0454979f5c..a5c75f07f5 100644 --- a/packages/next-tinacms-dos/CHANGELOG.md +++ b/packages/next-tinacms-dos/CHANGELOG.md @@ -1,5 +1,12 @@ # next-tinacms-cloudinary +## 24.0.0 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + ## 23.0.4 ### Patch Changes diff --git a/packages/next-tinacms-dos/package.json b/packages/next-tinacms-dos/package.json index e8c067d5f7..9461ca202f 100644 --- a/packages/next-tinacms-dos/package.json +++ b/packages/next-tinacms-dos/package.json @@ -1,7 +1,7 @@ { "name": "next-tinacms-dos", "type": "module", - "version": "23.0.4", + "version": "24.0.0", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/next-tinacms-s3/CHANGELOG.md b/packages/next-tinacms-s3/CHANGELOG.md index fcbbdb6829..1934fa8720 100644 --- a/packages/next-tinacms-s3/CHANGELOG.md +++ b/packages/next-tinacms-s3/CHANGELOG.md @@ -1,5 +1,12 @@ # next-tinacms-s3 +## 24.0.0 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + ## 23.0.4 ### Patch Changes diff --git a/packages/next-tinacms-s3/package.json b/packages/next-tinacms-s3/package.json index d762d35f6a..8633fd70a1 100644 --- a/packages/next-tinacms-s3/package.json +++ b/packages/next-tinacms-s3/package.json @@ -1,7 +1,7 @@ { "name": "next-tinacms-s3", "type": "module", - "version": "23.0.4", + "version": "24.0.0", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/tinacms-authjs/CHANGELOG.md b/packages/tinacms-authjs/CHANGELOG.md index 004e4c37e8..8234f2233a 100644 --- a/packages/tinacms-authjs/CHANGELOG.md +++ b/packages/tinacms-authjs/CHANGELOG.md @@ -1,5 +1,13 @@ # tinacms-authjs +## 24.0.0 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + - @tinacms/schema-tools@2.8.3 + ## 23.0.4 ### Patch Changes diff --git a/packages/tinacms-authjs/package.json b/packages/tinacms-authjs/package.json index 4c7a2f7cfc..14fe3f69bc 100644 --- a/packages/tinacms-authjs/package.json +++ b/packages/tinacms-authjs/package.json @@ -1,7 +1,7 @@ { "name": "tinacms-authjs", "type": "module", - "version": "23.0.4", + "version": "24.0.0", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/tinacms-clerk/CHANGELOG.md b/packages/tinacms-clerk/CHANGELOG.md index a13b70041b..be8342c6a2 100644 --- a/packages/tinacms-clerk/CHANGELOG.md +++ b/packages/tinacms-clerk/CHANGELOG.md @@ -1,5 +1,12 @@ # tinacms-clerk +## 24.0.0 + +### Patch Changes + +- Updated dependencies [[`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b), [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd), [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236), [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713), [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e), [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419), [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626)]: + - tinacms@3.10.0 + ## 23.0.4 ### Patch Changes diff --git a/packages/tinacms-clerk/package.json b/packages/tinacms-clerk/package.json index dede8ee137..9e98c75b99 100644 --- a/packages/tinacms-clerk/package.json +++ b/packages/tinacms-clerk/package.json @@ -1,7 +1,7 @@ { "name": "tinacms-clerk", "type": "module", - "version": "23.0.4", + "version": "24.0.0", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/tinacms-gitprovider-github/CHANGELOG.md b/packages/tinacms-gitprovider-github/CHANGELOG.md index 5f20f50aa0..6873d2eaea 100644 --- a/packages/tinacms-gitprovider-github/CHANGELOG.md +++ b/packages/tinacms-gitprovider-github/CHANGELOG.md @@ -1,5 +1,12 @@ # tinacms-gitprovider-github +## 4.1.14 + +### Patch Changes + +- Updated dependencies []: + - @tinacms/datalayer@2.0.27 + ## 4.1.13 ### Patch Changes diff --git a/packages/tinacms-gitprovider-github/package.json b/packages/tinacms-gitprovider-github/package.json index 15fd17f738..219db20bda 100644 --- a/packages/tinacms-gitprovider-github/package.json +++ b/packages/tinacms-gitprovider-github/package.json @@ -1,7 +1,7 @@ { "name": "tinacms-gitprovider-github", "type": "module", - "version": "4.1.13", + "version": "4.1.14", "main": "dist/index.js", "module": "./dist/index.js", "files": [ diff --git a/packages/tinacms/CHANGELOG.md b/packages/tinacms/CHANGELOG.md index 84bab2d4ea..7496ac090f 100644 --- a/packages/tinacms/CHANGELOG.md +++ b/packages/tinacms/CHANGELOG.md @@ -1,5 +1,32 @@ # tinacms +## 3.10.0 + +### Minor Changes + +- [#7136](https://github.com/tinacms/tinacms/pull/7136) [`c809733`](https://github.com/tinacms/tinacms/commit/c809733ce8037d81937e81f0c8781a6cf222099b) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - editorial workflow - add toggle to switch PRs created between draft and ready to review mode + +### Patch Changes + +- [#7141](https://github.com/tinacms/tinacms/pull/7141) [`3a1b39a`](https://github.com/tinacms/tinacms/commit/3a1b39ad9a2bbeb82a539fbca6985d5b714238dd) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Update `@radix-ui/*` dependencies to their latest patch/minor releases and remove the unused `@radix-ui/react-checkbox` dependency + +- [#7140](https://github.com/tinacms/tinacms/pull/7140) [`de4a807`](https://github.com/tinacms/tinacms/commit/de4a80771e83afa8502f834227351cff54c5f236) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Add a PostHog `editorial-workflow-save` event that records which save option was used in the "Save changes to new branch" modal (draft, ready for review, or publish), whether the save succeeded, and the failure reason when it didn't. + +- [#7138](https://github.com/tinacms/tinacms/pull/7138) [`8497110`](https://github.com/tinacms/tinacms/commit/8497110ada7554f97807ce7a09a3624b5efc5713) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Editorial workflow: replace the draft / ready-for-review toggle in the "Save changes to new branch" modal with a save-options dropdown (Save draft, Save (ready for review), Save and publish). The split button's main action reflects the editor's last choice (default Save draft, remembered via localStorage), and Save and publish is disabled with a tooltip on protected branches. + +- [#7131](https://github.com/tinacms/tinacms/pull/7131) [`22d0c0d`](https://github.com/tinacms/tinacms/commit/22d0c0d095b79e116677a798d07b35591ccb816e) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - move floatingtoolbar for links to a react portal + +- [#7123](https://github.com/tinacms/tinacms/pull/7123) [`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) + +- [#7143](https://github.com/tinacms/tinacms/pull/7143) [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. + +- [#7128](https://github.com/tinacms/tinacms/pull/7128) [`b53a51c`](https://github.com/tinacms/tinacms/commit/b53a51c92ee8ddecbb654f5b57c7d10673a06626) Thanks [@Aibono1225](https://github.com/Aibono1225)! - Harden message handling in the `useEditState` hook so it validates the sender of incoming `message` events, matching the `isFromAdmin(event, trustedAdminOrigins)` check already used by `useTina`. The hook now also removes its `message` listener on unmount. Legitimate admin→preview behavior is unchanged. + +- Updated dependencies [[`5148d67`](https://github.com/tinacms/tinacms/commit/5148d679049bc53e34b287a586bc721db7cb7710), [`ff10e65`](https://github.com/tinacms/tinacms/commit/ff10e657e48f1acc67cafd3e1a99bef23c8ac419)]: + - @tinacms/schema-tools@2.8.3 + - @tinacms/mdx@2.1.9 + - @tinacms/search@1.2.21 + ## 3.9.4 ### Patch Changes diff --git a/packages/tinacms/package.json b/packages/tinacms/package.json index 8c4a444490..a852a3eb52 100644 --- a/packages/tinacms/package.json +++ b/packages/tinacms/package.json @@ -2,7 +2,7 @@ "name": "tinacms", "type": "module", "typings": "dist/index.d.ts", - "version": "3.9.4", + "version": "3.10.0", "main": "dist/index.js", "module": "./dist/index.js", "exports": { From ebafd8fcfcb9ff532873764ec174d013ddf23850 Mon Sep 17 00:00:00 2001 From: "Josh Berman [SSW]" <137844305+joshbermanssw@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:49:36 +1000 Subject: [PATCH 8/8] =?UTF-8?q?=F0=9F=94=8F=20Use=20changesets=20github-ap?= =?UTF-8?q?i=20commit=20mode=20so=20release=20commits=20are=20signed=20(#7?= =?UTF-8?q?160)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claude Fable 5 --- .github/workflows/publish.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9a4903a948..d0aca7d1cd 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -285,6 +285,9 @@ jobs: publish: pnpm run publish createGithubReleases: true setupGitUser: false + # github-api mode makes GitHub create and sign the Version Packages + # commit server-side, satisfying main's required-signatures rule + commitMode: github-api env: GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} NPM_CONFIG_PROVENANCE: true