diff --git a/cloud/src/Signal.Infrastructure.AzureSpeech/Signal.Infrastructure.AzureSpeech.csproj b/cloud/src/Signal.Infrastructure.AzureSpeech/Signal.Infrastructure.AzureSpeech.csproj index 74fd030999..e8f420b724 100644 --- a/cloud/src/Signal.Infrastructure.AzureSpeech/Signal.Infrastructure.AzureSpeech.csproj +++ b/cloud/src/Signal.Infrastructure.AzureSpeech/Signal.Infrastructure.AzureSpeech.csproj @@ -9,7 +9,7 @@ - + diff --git a/cloud/src/Signalco.Api.RemoteBrowser/Signalco.Api.RemoteBrowser.csproj b/cloud/src/Signalco.Api.RemoteBrowser/Signalco.Api.RemoteBrowser.csproj index 72fb415d26..0425c3dada 100644 --- a/cloud/src/Signalco.Api.RemoteBrowser/Signalco.Api.RemoteBrowser.csproj +++ b/cloud/src/Signalco.Api.RemoteBrowser/Signalco.Api.RemoteBrowser.csproj @@ -14,7 +14,7 @@ - + diff --git a/infra/apps/cloud-primary/package.json b/infra/apps/cloud-primary/package.json index 791c5f83d9..76be7b9a25 100644 --- a/infra/apps/cloud-primary/package.json +++ b/infra/apps/cloud-primary/package.json @@ -24,8 +24,8 @@ }, "dependencies": { "@checkly/pulumi": "1.1.4", - "@pulumi/aws": "6.49.0", - "@pulumi/azure-native": "2.55.0", + "@pulumi/aws": "6.49.1", + "@pulumi/azure-native": "2.56.0", "@pulumi/cloudflare": "5.36.0", "@pulumi/command": "1.0.1", "@pulumi/docker": "4.5.5", diff --git a/infra/apps/doprocess/package.json b/infra/apps/doprocess/package.json index e9b048f436..ff11c53085 100644 --- a/infra/apps/doprocess/package.json +++ b/infra/apps/doprocess/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@pulumi/pulumi": "3.129.0", - "@pulumi/azure-native": "2.55.0", + "@pulumi/azure-native": "2.56.0", "@pulumi/cloudflare": "5.36.0", "@pulumi/docker": "4.5.5", "@pulumiverse/vercel": "1.11.0" diff --git a/infra/apps/remote-browser/package.json b/infra/apps/remote-browser/package.json index 5530d55882..bdcfe4c9e1 100644 --- a/infra/apps/remote-browser/package.json +++ b/infra/apps/remote-browser/package.json @@ -20,8 +20,8 @@ }, "dependencies": { "@checkly/pulumi": "1.1.4", - "@pulumi/aws": "6.49.0", - "@pulumi/azure-native": "2.55.0", + "@pulumi/aws": "6.49.1", + "@pulumi/azure-native": "2.56.0", "@pulumi/cloudflare": "5.36.0", "@pulumi/command": "1.0.1", "@pulumi/docker": "4.5.5", diff --git a/infra/apps/uier/package.json b/infra/apps/uier/package.json index 6ea173c105..bb4ce80a51 100644 --- a/infra/apps/uier/package.json +++ b/infra/apps/uier/package.json @@ -24,8 +24,8 @@ }, "dependencies": { "@checkly/pulumi": "1.1.4", - "@pulumi/aws": "6.49.0", - "@pulumi/azure-native": "2.55.0", + "@pulumi/aws": "6.49.1", + "@pulumi/azure-native": "2.56.0", "@pulumi/cloudflare": "5.36.0", "@pulumi/command": "1.0.1", "@pulumi/docker": "4.5.5", diff --git a/infra/apps/workingparty/package.json b/infra/apps/workingparty/package.json index 6124ab1cfd..b899d7439b 100644 --- a/infra/apps/workingparty/package.json +++ b/infra/apps/workingparty/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@pulumi/pulumi": "3.129.0", - "@pulumi/azure-native": "2.55.0", + "@pulumi/azure-native": "2.56.0", "@pulumi/cloudflare": "5.36.0", "@pulumi/docker": "4.5.5", "@pulumiverse/vercel": "1.11.0" diff --git a/infra/package.json b/infra/package.json index 707d742a87..73d6dc9f80 100644 --- a/infra/package.json +++ b/infra/package.json @@ -12,9 +12,9 @@ "devDependencies": { "@infra/eslint-config": "workspace:*", "@infra/typescript-config": "workspace:*", - "turbo": "2.0.12" + "turbo": "2.0.14" }, - "packageManager": "pnpm@9.7.0", + "packageManager": "pnpm@9.7.1", "engines": { "node": ">=18" } diff --git a/infra/packages/eslint-config/package.json b/infra/packages/eslint-config/package.json index bc2a976ca1..fd1d4be9a9 100644 --- a/infra/packages/eslint-config/package.json +++ b/infra/packages/eslint-config/package.json @@ -7,7 +7,7 @@ "library.js" ], "devDependencies": { - "eslint-config-turbo": "2.0.12", + "eslint-config-turbo": "2.0.14", "eslint-config-prettier": "9.1.0", "eslint-plugin-only-warn": "1.1.0", "eslint-plugin-import": "2.29.1", diff --git a/infra/packages/pulumi/package.json b/infra/packages/pulumi/package.json index a13e5d5340..96e3c7d9f6 100644 --- a/infra/packages/pulumi/package.json +++ b/infra/packages/pulumi/package.json @@ -40,8 +40,8 @@ }, "dependencies": { "@checkly/pulumi": "1.1.4", - "@pulumi/aws": "6.49.0", - "@pulumi/azure-native": "2.55.0", + "@pulumi/aws": "6.49.1", + "@pulumi/azure-native": "2.56.0", "@pulumi/cloudflare": "5.36.0", "@pulumi/command": "1.0.1", "@pulumi/docker": "4.5.5", diff --git a/infra/pnpm-lock.yaml b/infra/pnpm-lock.yaml index 8133e39cf3..3dbb9dee47 100644 --- a/infra/pnpm-lock.yaml +++ b/infra/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: workspace:* version: link:packages/typescript-config turbo: - specifier: 2.0.12 - version: 2.0.12 + specifier: 2.0.14 + version: 2.0.14 apps/cloud-primary: dependencies: @@ -24,11 +24,11 @@ importers: specifier: 1.1.4 version: 1.1.4(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/aws': - specifier: 6.49.0 - version: 6.49.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 6.49.1 + version: 6.49.1(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/azure-native': - specifier: 2.55.0 - version: 2.55.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 2.56.0 + version: 2.56.0(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/cloudflare': specifier: 5.36.0 version: 5.36.0(ts-node@7.0.1)(typescript@5.5.4) @@ -79,8 +79,8 @@ importers: apps/doprocess: dependencies: '@pulumi/azure-native': - specifier: 2.55.0 - version: 2.55.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 2.56.0 + version: 2.56.0(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/cloudflare': specifier: 5.36.0 version: 5.36.0(ts-node@7.0.1)(typescript@5.5.4) @@ -131,11 +131,11 @@ importers: specifier: 1.1.4 version: 1.1.4(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/aws': - specifier: 6.49.0 - version: 6.49.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 6.49.1 + version: 6.49.1(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/azure-native': - specifier: 2.55.0 - version: 2.55.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 2.56.0 + version: 2.56.0(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/cloudflare': specifier: 5.36.0 version: 5.36.0(ts-node@7.0.1)(typescript@5.5.4) @@ -189,11 +189,11 @@ importers: specifier: 1.1.4 version: 1.1.4(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/aws': - specifier: 6.49.0 - version: 6.49.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 6.49.1 + version: 6.49.1(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/azure-native': - specifier: 2.55.0 - version: 2.55.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 2.56.0 + version: 2.56.0(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/cloudflare': specifier: 5.36.0 version: 5.36.0(ts-node@7.0.1)(typescript@5.5.4) @@ -244,8 +244,8 @@ importers: apps/workingparty: dependencies: '@pulumi/azure-native': - specifier: 2.55.0 - version: 2.55.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 2.56.0 + version: 2.56.0(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/cloudflare': specifier: 5.36.0 version: 5.36.0(ts-node@7.0.1)(typescript@5.5.4) @@ -302,8 +302,8 @@ importers: specifier: 9.1.0 version: 9.1.0(eslint@8.57.0) eslint-config-turbo: - specifier: 2.0.12 - version: 2.0.12(eslint@8.57.0) + specifier: 2.0.14 + version: 2.0.14(eslint@8.57.0) eslint-import-resolver-typescript: specifier: 3.6.1 version: 3.6.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1)(eslint@8.57.0) @@ -323,11 +323,11 @@ importers: specifier: 1.1.4 version: 1.1.4(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/aws': - specifier: 6.49.0 - version: 6.49.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 6.49.1 + version: 6.49.1(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/azure-native': - specifier: 2.55.0 - version: 2.55.0(ts-node@7.0.1)(typescript@5.5.4) + specifier: 2.56.0 + version: 2.56.0(ts-node@7.0.1)(typescript@5.5.4) '@pulumi/cloudflare': specifier: 5.36.0 version: 5.36.0(ts-node@7.0.1)(typescript@5.5.4) @@ -771,11 +771,11 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@pulumi/aws@6.49.0': - resolution: {integrity: sha512-Xj/rf0dmcykCxBtf1rNk6OWVSnCXDb5bl6T2/FIzmnDRETc/Tnhk5m7GsSmZe7a3l00IMbvodBre+FIxikimKg==} + '@pulumi/aws@6.49.1': + resolution: {integrity: sha512-4FPJNmZsVCcCVtsusGMTozR5PqzW0h3O4jJGJ6t2jGDJDtqAkEUMLMRlnNXX1QsoKbK4gtG5YwmG/24F3TjJuA==} - '@pulumi/azure-native@2.55.0': - resolution: {integrity: sha512-WEJkALsp8Tyn3JeQN5kjIKP7oRlAKfONBTAyBv0YCoqaNnXOWtlH4xtz87zfqXI9uxbVM03SA6lJ25Lcg416cg==} + '@pulumi/azure-native@2.56.0': + resolution: {integrity: sha512-xmLYAehU5UjlajDk3SctJrsiSof0ypYhu5Be/zJLYSxSfYh2h/3mTFnJPEmEBaVaAt6vGbcW0AzT35PbvqVtCw==} '@pulumi/cloudflare@5.36.0': resolution: {integrity: sha512-o9kqc5mzpNkMG9tmgsJgYv0KTh/rVUd/fJ/FE71P12m2TwWO5VR1Y96kk+ZMdbpoD847W66OtMjWRUBLBgX1cg==} @@ -1381,8 +1381,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.0.12: - resolution: {integrity: sha512-3PUzoyeJi2SjsTSjfWgTUIHK7kOqsapDEaOT7sCjFnZXvuhYLKxW37lysjq7+55abGGm0yQTXxNFLjrQKUORag==} + eslint-config-turbo@2.0.14: + resolution: {integrity: sha512-VkzAH/AR1/fjMsqzuurfWkEgyGVTTzfZQB1umDB8dMWzFhqo8p/2KEWbvRQLEvSFxjVfeJl5ErQAJ7h7DYglxg==} peerDependencies: eslint: '>6.6.0' @@ -1449,8 +1449,8 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-turbo@2.0.12: - resolution: {integrity: sha512-vXWKer7F0RPTcVy1B+hFTEK4mlEOpouB8MCAFD3WW4C6t98wvuDCsIPjxIldpxg7CnwmRxALpNWgNVkU2LVVEQ==} + eslint-plugin-turbo@2.0.14: + resolution: {integrity: sha512-E++MSAEeWZTU0FYARrfakMPq+7XeltqeY4JBDQTzbGEWG3kgYJPeYBMWsypcvBujVihQLlMu0S6ImnfV692mHg==} peerDependencies: eslint: '>6.6.0' @@ -2609,38 +2609,38 @@ packages: resolution: {integrity: sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==} engines: {node: ^16.14.0 || >=18.0.0} - turbo-darwin-64@2.0.12: - resolution: {integrity: sha512-NAgfgbXxX/JScWQmmQnGbPuFZq7LIswHfcMk5JwyBXQM/xmklNOxxac7MnGGIOf19Z2f6S3qHy17VIj0SeGfnA==} + turbo-darwin-64@2.0.14: + resolution: {integrity: sha512-kwfDmjNwlNfvtrvT29+ZBg5n1Wvxl891bFHchMJyzMoR0HOE9N1NSNdSZb9wG3e7sYNIu4uDkNk+VBEqJW0HzQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.0.12: - resolution: {integrity: sha512-cP02uer5KSJ+fXL+OfRRk5hnVjV0c60hxDgNcJxrZpfhun7HHoKDDR7w2xhQntiA45aC6ZZEXRqMKpj6GAmKbg==} + turbo-darwin-arm64@2.0.14: + resolution: {integrity: sha512-m3LXYEshCx3wc4ZClM6gb01KYpFmtjQ9IBF3A7ofjb6ahux3xlYZJZ3uFCLAGHuvGLuJ3htfiPbwlDPTdknqqw==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.0.12: - resolution: {integrity: sha512-+mQgGfg1eq5qF+wenK/FKJaNMNAo5DQLC4htQy+8osW+fx6U+8+6UlPQPaycAWDEqwOI7NwuqkeHfkEQLQUTyQ==} + turbo-linux-64@2.0.14: + resolution: {integrity: sha512-7vBzCPdoTtR92SNn2JMgj1FlMmyonGmpMaQdgAB1OVYtuQ6NVGoh7/lODfaILqXjpvmFSVbpBIDrKOT6EvcprQ==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.0.12: - resolution: {integrity: sha512-KFyEZDXfPU1DK4zimxdCcqAcK7IIttX4mfsgB7NsSEOmH0dhHOih/YFYiyEDC1lTRx0C2RlzQ0Kjjdz48AN5Eg==} + turbo-linux-arm64@2.0.14: + resolution: {integrity: sha512-jwH+c0bfjpBf26K/tdEFatmnYyXwGROjbr6bZmNcL8R+IkGAc/cglL+OToqJnQZTgZvH7uDGbeSyUo7IsHyjuA==} cpu: [arm64] os: [linux] - turbo-windows-64@2.0.12: - resolution: {integrity: sha512-kJj4KCkZTkDTDCqsSw1m1dbO4WeoQq1mYUm/thXOH0OkeqYbSMt0EyoTcJOgKUDsrMnzZD2gPfYrlYHtV69lVA==} + turbo-windows-64@2.0.14: + resolution: {integrity: sha512-w9/XwkHSzvLjmioo6cl3S1yRfI6swxsV1j1eJwtl66JM4/pn0H2rBa855R0n7hZnmI6H5ywLt/nLt6Ae8RTDmw==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.0.12: - resolution: {integrity: sha512-TY3ROxguDilN2olCwcZMaePdW01Xhma0pZU7bNhsQEqca9RGAmsZBuzfGnTMcWPmv4tpnb/PlX1hrt1Hod/44Q==} + turbo-windows-arm64@2.0.14: + resolution: {integrity: sha512-XaQlyYk+Rf4xS5XWCo8XCMIpssgGGy8blzLfolN6YBp4baElIWMlkLZHDbGyiFmCbNf9I9gJI64XGRG+LVyyjA==} cpu: [arm64] os: [win32] - turbo@2.0.12: - resolution: {integrity: sha512-8s2KwqjwQj7z8Z53SUZSKVkQOZ2/Sl4D2F440oaBY/k2lGju60dW6srEpnn8/RIDeICZmQn3pQHF79Jfnc5Skw==} + turbo@2.0.14: + resolution: {integrity: sha512-00JjdCMD/cpsjP0Izkjcm8Oaor5yUCfDwODtaLb+WyblyadkaDEisGhy3Dbd5az9n+5iLSPiUgf+WjPbns6MRg==} hasBin: true type-check@0.4.0: @@ -3174,7 +3174,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@pulumi/aws@6.49.0(ts-node@7.0.1)(typescript@5.5.4)': + '@pulumi/aws@6.49.1(ts-node@7.0.1)(typescript@5.5.4)': dependencies: '@pulumi/pulumi': 3.129.0(ts-node@7.0.1)(typescript@5.5.4) builtin-modules: 3.0.0 @@ -3186,7 +3186,7 @@ snapshots: - ts-node - typescript - '@pulumi/azure-native@2.55.0(ts-node@7.0.1)(typescript@5.5.4)': + '@pulumi/azure-native@2.56.0(ts-node@7.0.1)(typescript@5.5.4)': dependencies: '@pulumi/pulumi': 3.129.0(ts-node@7.0.1)(typescript@5.5.4) transitivePeerDependencies: @@ -3899,10 +3899,10 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-turbo@2.0.12(eslint@8.57.0): + eslint-config-turbo@2.0.14(eslint@8.57.0): dependencies: eslint: 8.57.0 - eslint-plugin-turbo: 2.0.12(eslint@8.57.0) + eslint-plugin-turbo: 2.0.14(eslint@8.57.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -3992,7 +3992,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-turbo@2.0.12(eslint@8.57.0): + eslint-plugin-turbo@2.0.14(eslint@8.57.0): dependencies: dotenv: 16.0.3 eslint: 8.57.0 @@ -5256,32 +5256,32 @@ snapshots: transitivePeerDependencies: - supports-color - turbo-darwin-64@2.0.12: + turbo-darwin-64@2.0.14: optional: true - turbo-darwin-arm64@2.0.12: + turbo-darwin-arm64@2.0.14: optional: true - turbo-linux-64@2.0.12: + turbo-linux-64@2.0.14: optional: true - turbo-linux-arm64@2.0.12: + turbo-linux-arm64@2.0.14: optional: true - turbo-windows-64@2.0.12: + turbo-windows-64@2.0.14: optional: true - turbo-windows-arm64@2.0.12: + turbo-windows-arm64@2.0.14: optional: true - turbo@2.0.12: + turbo@2.0.14: optionalDependencies: - turbo-darwin-64: 2.0.12 - turbo-darwin-arm64: 2.0.12 - turbo-linux-64: 2.0.12 - turbo-linux-arm64: 2.0.12 - turbo-windows-64: 2.0.12 - turbo-windows-arm64: 2.0.12 + turbo-darwin-64: 2.0.14 + turbo-darwin-arm64: 2.0.14 + turbo-linux-64: 2.0.14 + turbo-linux-arm64: 2.0.14 + turbo-windows-64: 2.0.14 + turbo-windows-arm64: 2.0.14 type-check@0.4.0: dependencies: diff --git a/station/Signal.Beacon.Application/Signal.Beacon.Application.csproj b/station/Signal.Beacon.Application/Signal.Beacon.Application.csproj index e123a03dc3..f8f2257e40 100644 --- a/station/Signal.Beacon.Application/Signal.Beacon.Application.csproj +++ b/station/Signal.Beacon.Application/Signal.Beacon.Application.csproj @@ -8,7 +8,7 @@ - + diff --git a/station/global.json b/station/global.json index 91a2345cc4..1ceee139e8 100644 --- a/station/global.json +++ b/station/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.303", + "version": "8.0.401", "rollForward": "latestMajor" } } \ No newline at end of file diff --git a/web/apps/app/app/layout.tsx b/web/apps/app/app/layout.tsx index 71bb57d474..08b6ae449f 100644 --- a/web/apps/app/app/layout.tsx +++ b/web/apps/app/app/layout.tsx @@ -8,7 +8,7 @@ import { LayoutClientWrapper } from './LayoutClientWrapper'; export default function RootLayout({ children }: PropsWithChildren) { return ( - + diff --git a/web/apps/app/app/spaces/page.tsx b/web/apps/app/app/spaces/page.tsx index 36ebdbf430..4a6f3fa8a7 100644 --- a/web/apps/app/app/spaces/page.tsx +++ b/web/apps/app/app/spaces/page.tsx @@ -1,11 +1,10 @@ -'use client'; - -import dynamic from 'next/dynamic' - -const Dashboards = dynamic(() => import('../../components/dashboards/Dashboards').then(mod => mod.Dashboards), { ssr: false }); +import { DashboardsDefaultRedirect } from '../../components/dashboards/DashboardsDefaultRedirect'; +import { Dashboards } from '../../components/dashboards/Dashboards'; export default function SpacesPage() { return ( - + + + ); } diff --git a/web/apps/app/components/dashboards/DashboardPadding.tsx b/web/apps/app/components/dashboards/DashboardPadding.tsx new file mode 100644 index 0000000000..2bf1ed0207 --- /dev/null +++ b/web/apps/app/components/dashboards/DashboardPadding.tsx @@ -0,0 +1,9 @@ +import { PropsWithChildren } from 'react'; + +export function DashboardPadding({ children }: PropsWithChildren) { + return ( +
+ {children} +
+ ) +} \ No newline at end of file diff --git a/web/apps/app/components/dashboards/DashboardSelector.tsx b/web/apps/app/components/dashboards/DashboardSelector.tsx index 4d3ea2c376..7b3a0037be 100644 --- a/web/apps/app/components/dashboards/DashboardSelector.tsx +++ b/web/apps/app/components/dashboards/DashboardSelector.tsx @@ -5,9 +5,10 @@ import { Row } from '@signalco/ui-primitives/Row'; import { Popper } from '@signalco/ui-primitives/Popper'; import { ButtonDropdown } from '@signalco/ui-primitives/ButtonDropdown'; import { Button } from '@signalco/ui-primitives/Button'; -import { showNotification } from '@signalco/ui-notifications'; +import { PageNotificationVariant, showNotification } from '@signalco/ui-notifications'; import { Loadable } from '@signalco/ui/Loadable'; import { useSearchParam } from '@signalco/hooks/useSearchParam'; +import useLocale from '../../src/hooks/useLocale'; import useDashboards from '../../src/hooks/dashboards/useDashboards'; import DashboardSelectorMenu from './DashboardSelectorMenu'; @@ -16,30 +17,26 @@ type DashboardSelectorProps = { onSettings: () => void } -function DashboardSelector({ onEditWidgets, onSettings }: DashboardSelectorProps) { - const [selectedId, setSelectedId] = useSearchParam('dashboard'); - const [isOpen, setIsOpen] = useState(false); - const { data: dashboards, isLoading, error } = useDashboards(); - +function useErrorNotification(error: Error | null, message: string, variant?: PageNotificationVariant) { useEffect(() => { if (error) { console.error(error); - showNotification('There was an error while loading dashboards. Please refresh the page.', 'error'); + showNotification(message, variant ?? 'error'); } - }, [error]); + }, [error, message, variant]); +} + +function DashboardSelector({ onEditWidgets, onSettings }: DashboardSelectorProps) { + const { t } = useLocale('App', 'Dashboards'); + const [selectedId, setSelectedId] = useSearchParam('dashboard'); + const [isOpen, setIsOpen] = useState(false); + const { data: dashboards, isLoading: dashboardsIsLoading, error: dashboardsError } = useDashboards(); + useErrorNotification(dashboardsError, t('DashboardsLoadingError')); const currentDashboard = dashboards?.find(d => d.id == selectedId); const currentName = currentDashboard?.name; const favoriteDashboards = dashboards?.filter(d => d.isFavorite); - // Set initial selection on component and dashboards load - useEffect(() => { - if (!selectedId && dashboards?.length && !isLoading) { - console.debug('Selecting first available dashboard', dashboards[0]?.id); - setSelectedId(dashboards[0]?.id); - } - }, [selectedId, dashboards, setSelectedId, isLoading]); - const handleSelection = (id: string) => { setSelectedId(id); setIsOpen(false); @@ -53,8 +50,8 @@ function DashboardSelector({ onEditWidgets, onSettings }: DashboardSelectorProps return ( {(favoriteDashboards?.length ?? 0) > 0 && (
- {/*
- -
*/} {favoriteDashboards?.map(fd => (
)}
diff --git a/web/apps/app/components/dashboards/DashboardSkeleton.tsx b/web/apps/app/components/dashboards/DashboardSkeleton.tsx new file mode 100644 index 0000000000..e9a874758f --- /dev/null +++ b/web/apps/app/components/dashboards/DashboardSkeleton.tsx @@ -0,0 +1,26 @@ +import { CSSProperties } from 'react'; +import { Skeleton } from '@signalco/ui-primitives/Skeleton'; +import { useDashboardSizes } from './useDashboardSizes'; +import { DashboardPadding } from './DashboardPadding'; + +export function DashboardSkeleton() { + const { resizeObserverRef, widgetSize, numberOfColumns, dashboardWidth } = useDashboardSizes(); + + return ( + +
+
+ + + +
+
+
+ ) +} diff --git a/web/apps/app/components/dashboards/DashboardView.tsx b/web/apps/app/components/dashboards/DashboardView.tsx index 94a0f77449..10f0be9eb7 100644 --- a/web/apps/app/components/dashboards/DashboardView.tsx +++ b/web/apps/app/components/dashboards/DashboardView.tsx @@ -1,50 +1,16 @@ 'use client'; -import { useState, useMemo, CSSProperties } from 'react'; -import Image from 'next/image'; -import { Typography } from '@signalco/ui-primitives/Typography'; -import { Stack } from '@signalco/ui-primitives/Stack'; -import { Row } from '@signalco/ui-primitives/Row'; -import { Button } from '@signalco/ui-primitives/Button'; -import { useResizeObserver } from '@enterwell/react-hooks'; -import useLocale from '../../src/hooks/useLocale'; +import { useMemo, CSSProperties } from 'react'; import { IDashboardModel } from '../../src/dashboards/DashboardsRepository'; +import { useDashboardSizes } from './useDashboardSizes'; +import { NoWidgetsPlaceholder } from './NoWidgetsPlaceholder'; import GridWrapper from './GridWrapper'; import DragableWidget from './DragableWidget'; import DisplayWidget from './DisplayWidget'; -function NoWidgetsPlaceholder({ onAdd }: { onAdd: () => void }) { - const { t } = useLocale('App', 'Dashboards'); - - return ( - - - - No Widgets - {t('NoWidgets')} - {t('NoWidgetsHelpTextFirstLine')}
{t('NoWidgetsHelpTextSecondLine')}
- -
-
-
- ); -} - function DashboardView(props: { dashboard: IDashboardModel, isEditing: boolean, onAddWidget: () => void }) { const { dashboard, isEditing, onAddWidget } = props; - const [windowInnerWidth, setWindowInnerWidth] = useState(window.innerWidth); - const resizeObserverRef = useResizeObserver((_, entry) => { - setWindowInnerWidth(entry.contentRect.width); - }); - - // Render placeholder when there is no widgets - const widgetsOrder = useMemo(() => dashboard.widgets.slice().sort((a, b) => a.order - b.order).map(w => w.id), [dashboard.widgets]); - const widgets = useMemo(() => widgetsOrder.map(wo => dashboard.widgets.find(w => wo === w.id)).filter(Boolean), [dashboard.widgets, widgetsOrder]); - if (widgets.length <= 0) { - return - } - function handleOrderChanged(newOrder: string[]) { for (let i = 0; i < newOrder.length; i++) { const widget = widgets.find(w => w.id === newOrder[i]); @@ -66,10 +32,15 @@ function DashboardView(props: { dashboard: IDashboardModel, isEditing: boolean, } const WidgetComponent = isEditing ? DragableWidget : DisplayWidget; - const widgetSize = 1 + 64 + 1 + 4; // Default widget is 64x64 + 2px for border + 8 spacing between widgets (2x4px) - const dashboardWidth = windowInnerWidth; - const numberOfColumns = Math.max(2, Math.floor(dashboardWidth / widgetSize)); - const dynamicWidgetSize = `calc((${dashboardWidth}px - ${(numberOfColumns - 1) * 0.5}rem) / ${numberOfColumns})`; + + const { resizeObserverRef, widgetSize, numberOfColumns, dashboardWidth } = useDashboardSizes(); + + // Render placeholder when there is no widgets + const widgetsOrder = useMemo(() => dashboard.widgets.slice().sort((a, b) => a.order - b.order).map(w => w.id), [dashboard.widgets]); + const widgets = useMemo(() => widgetsOrder.map(wo => dashboard.widgets.find(w => wo === w.id)).filter(Boolean), [dashboard.widgets, widgetsOrder]); + if (widgets.length <= 0) { + return + } return (
@@ -78,7 +49,7 @@ function DashboardView(props: { dashboard: IDashboardModel, isEditing: boolean, style={{ '--dashboard-cols': numberOfColumns, '--dashboard-w': `${dashboardWidth}px`, - '--widget-size': `${dynamicWidgetSize}` + '--widget-size': `${widgetSize}` } as CSSProperties} > diff --git a/web/apps/app/components/dashboards/Dashboards.tsx b/web/apps/app/components/dashboards/Dashboards.tsx index 7011755368..bec726c207 100644 --- a/web/apps/app/components/dashboards/Dashboards.tsx +++ b/web/apps/app/components/dashboards/Dashboards.tsx @@ -1,6 +1,7 @@ 'use client'; import React, { useCallback, useEffect, useState } from 'react'; +import { notFound } from 'next/navigation'; import Image from 'next/image'; import dynamic from 'next/dynamic'; import { Typography } from '@signalco/ui-primitives/Typography'; @@ -19,7 +20,9 @@ import useDashboard from '../../src/hooks/dashboards/useDashboard'; import { WidgetModel } from '../../src/dashboards/DashboardsRepository'; import { SpacesEditingBackground } from './SpacesEditingBackground'; import DashboardView from './DashboardView'; +import { DashboardSkeleton } from './DashboardSkeleton'; import DashboardSettings from './DashboardSettings'; +import { DashboardPadding } from './DashboardPadding'; const WidgetStoreDynamic = dynamic(() => import('../widget-store/WidgetStore')); @@ -71,20 +74,20 @@ function SpaceBackground({ background }: { background?: string }) { export function Dashboards() { const { t } = useLocale('App', 'Dashboards'); const [selectedId, setDashboardId] = useSearchParam('dashboard'); - const selectedDashboard = useDashboard(selectedId); + const { data: selectedDashboard, isLoading: selectedDashboardIsLoading, error: selectedDashboardError } = useDashboard(selectedId); const saveDashboard = useSaveDashboard(); const [isEditingValue, setIsEditing] = useSearchParam('editing'); const isEditing = isEditingValue === 'true'; const handleEditDone = async () => { - if (!selectedDashboard.data) { + if (!selectedDashboard) { console.warn('Can not save - dashboard not selected'); return; } try { - console.debug(`Saving dashboard ${selectedId}...`, selectedDashboard.data); - await saveDashboard.mutateAsync(selectedDashboard.data); + console.debug(`Saving dashboard ${selectedId}...`, selectedDashboard); + await saveDashboard.mutateAsync(selectedDashboard); } catch (err) { console.error('Failed to save dashboards', err); showNotification(t('SaveFailedNotification'), 'error'); @@ -111,9 +114,9 @@ export function Dashboards() { const [showWidgetStore, setShowWidgetStore] = useState(false); const handleAddWidget = useCallback((widgetType: widgetType) => { - selectedDashboard.data?.widgets.push(new WidgetModel('new-widget', selectedDashboard.data.widgets.length, widgetType)); + selectedDashboard?.widgets.push(new WidgetModel('new-widget', selectedDashboard.widgets.length, widgetType)); setShowWidgetStore(false); - }, [selectedDashboard.data?.widgets]); + }, [selectedDashboard?.widgets]); const handleAddWidgetPlaceholder = () => { setIsEditing('true'); @@ -123,9 +126,16 @@ export function Dashboards() { const [isDashboardSettingsOpenValue, setIsDashboardSettingsOpen] = useSearchParam('settings'); const isDashboardSettingsOpen = isDashboardSettingsOpenValue === 'true'; + const isLoading = Boolean(selectedId) && selectedDashboardIsLoading; + + // Handle 404 + if (!selectedDashboard && !selectedDashboardIsLoading) { + return notFound(); + } + return ( <> - + {isEditing && ( <> @@ -139,33 +149,35 @@ export function Dashboards() { )} - - -
- {selectedDashboard.data - ? ( - - ) : ( - - - - {t('NoDashboardsPlaceholder')} - {t('NoDashboardsPlaceholder')} - {t('NoDashboardsHelpText')} - - - - - )} -
-
-
- {selectedDashboard.data && ( + } + loadingLabel="Loading dashboard..." + error={selectedDashboardError}> + + {selectedDashboard + ? ( + + ) : ( + + + + {t('NoDashboardsPlaceholder')} + {t('NoDashboardsPlaceholder')} + {t('NoDashboardsHelpText')} + + + + + )} + + + {selectedDashboard && ( setIsDashboardSettingsOpen(undefined)} /> )} diff --git a/web/apps/app/components/dashboards/DashboardsDefaultRedirect.tsx b/web/apps/app/components/dashboards/DashboardsDefaultRedirect.tsx new file mode 100644 index 0000000000..8669ad6530 --- /dev/null +++ b/web/apps/app/components/dashboards/DashboardsDefaultRedirect.tsx @@ -0,0 +1,30 @@ +'use client'; + +import { PropsWithChildren, useEffect } from 'react'; +import { Loadable } from '@signalco/ui/Loadable'; +import { useSearchParam } from '@signalco/hooks/useSearchParam'; +import useDashboards from '../../src/hooks/dashboards/useDashboards'; +import { DashboardSkeleton } from '../../components/dashboards/DashboardSkeleton'; + +export function DashboardsDefaultRedirect({ children }: PropsWithChildren) { + const [selectedId, setDashboardId] = useSearchParam('dashboard'); + + const { data: dashboards, isLoading: dashboardsIsLoading, error } = useDashboards(); + useEffect(() => { + if (!selectedId && dashboards?.length && !dashboardsIsLoading) { + console.debug('Selecting first available dashboard', dashboards[0]?.id); + setDashboardId(dashboards[0]?.id); + } + }, [selectedId, dashboards, dashboardsIsLoading, setDashboardId]); + + const isLoading = !error && !selectedId && (dashboardsIsLoading || (dashboards?.length ?? 0) > 0); + + return ( + } + loadingLabel="Loading dashboards..."> + {children} + + ); +} diff --git a/web/apps/app/components/dashboards/NoWidgetsPlaceholder.tsx b/web/apps/app/components/dashboards/NoWidgetsPlaceholder.tsx new file mode 100644 index 0000000000..dc0a463542 --- /dev/null +++ b/web/apps/app/components/dashboards/NoWidgetsPlaceholder.tsx @@ -0,0 +1,23 @@ +import Image from 'next/image'; +import { Typography } from '@signalco/ui-primitives/Typography'; +import { Stack } from '@signalco/ui-primitives/Stack'; +import { Row } from '@signalco/ui-primitives/Row'; +import { Button } from '@signalco/ui-primitives/Button'; +import useLocale from '../../src/hooks/useLocale'; + +export function NoWidgetsPlaceholder({ onAdd }: { onAdd: () => void }) { + const { t } = useLocale('App', 'Dashboards'); + + return ( + + + + No Widgets + {t('NoWidgets')} + {t('NoWidgetsHelpTextFirstLine')}
{t('NoWidgetsHelpTextSecondLine')}
+ +
+
+
+ ); +} \ No newline at end of file diff --git a/web/apps/app/components/dashboards/useDashboardSizes.ts b/web/apps/app/components/dashboards/useDashboardSizes.ts new file mode 100644 index 0000000000..ce195b7388 --- /dev/null +++ b/web/apps/app/components/dashboards/useDashboardSizes.ts @@ -0,0 +1,20 @@ +import { useState } from 'react'; +import { useResizeObserver } from '@enterwell/react-hooks'; + +export function useDashboardSizes() { + const defaultWidth = typeof window !== 'undefined' ? window.innerWidth : 0; + const [elementWidth, setElementWidth] = useState(defaultWidth); + const resizeObserverRef = useResizeObserver((_, entry) => { + setElementWidth(entry.contentRect.width); + }); + const widgetSize = 1 + 64 + 1 + 4; // Default widget is 64x64 + 2px for border + 8 spacing between widgets (2x4px) + const dashboardWidth = elementWidth; + const numberOfColumns = Math.max(2, Math.floor(dashboardWidth / widgetSize)); + const dynamicWidgetSize = `calc((${dashboardWidth}px - ${(numberOfColumns - 1) * 0.5}rem) / ${numberOfColumns})`; + return { + resizeObserverRef, + widgetSize: dynamicWidgetSize, + numberOfColumns, + dashboardWidth + }; +} \ No newline at end of file diff --git a/web/apps/app/components/settings/pages/DeveloperSettings.tsx b/web/apps/app/components/settings/pages/DeveloperSettings.tsx index 8c26bea3d1..054eb19990 100644 --- a/web/apps/app/components/settings/pages/DeveloperSettings.tsx +++ b/web/apps/app/components/settings/pages/DeveloperSettings.tsx @@ -1,9 +1,59 @@ 'use client'; -import React from 'react'; + +import React, { useEffect, useState } from 'react'; +import { Typography } from '@signalco/ui-primitives/Typography'; +import { Stack } from '@signalco/ui-primitives/Stack'; +import { Button } from '@signalco/ui-primitives/Button'; +import { showNotification } from '@signalco/ui-notifications'; import { FormBuilder } from '@enterwell/react-form-builder'; import { useDeveloperForm } from '../hooks/useDeveloperForm'; export function DeveloperSettings() { const form = useDeveloperForm(); - return ; + + const [workerRegistration, setWorkerRegistration] = useState(); + useEffect(() => { + (async () => { + try { + setWorkerRegistration(await navigator.serviceWorker.ready); + } catch (error) { + console.debug('Service worker not available', error); + } + })(); + }, []); + + const handleUnregisterWorker = async () => { + if (!workerRegistration) { + console.warn('No worker to unregister'); + return; + } + + try { + await workerRegistration.unregister(); + setWorkerRegistration(undefined); + showNotification('Service worker unregistered successfully.', 'success'); + } catch (error) { + console.error('Failed to unregister service worker', error); + showNotification('Failed to unregister service worker.', 'error'); + } + } + + return ( + + + + Service Worker + Service worker is {workerRegistration ? 'registered' : 'not registered'} + {Boolean(workerRegistration) && ( + <> + Active state: {workerRegistration?.active?.state ?? '-'} + Installing state: {workerRegistration?.installing?.state ?? '-'} + Waiting state: {workerRegistration?.waiting?.state ?? '-'} + Scope: {workerRegistration?.scope} + + + )} + + + ); } diff --git a/web/apps/app/components/widgets/parts/piece/PrimaryValueLabel.tsx b/web/apps/app/components/widgets/parts/piece/PrimaryValueLabel.tsx index 431ee2ddf6..ef5067a669 100644 --- a/web/apps/app/components/widgets/parts/piece/PrimaryValueLabel.tsx +++ b/web/apps/app/components/widgets/parts/piece/PrimaryValueLabel.tsx @@ -23,11 +23,11 @@ export function PrimaryValueLabel({ value, unit, size = 'normal' }: { value: num return ( - {valueWhole} + {Number.isNaN(valueWhole) ? 0 : valueWhole} - {unit} - .{degreesDecimal} + {unit ?? ''} + .{Number.isNaN(degreesDecimal) ? 0 : degreesDecimal} ); diff --git a/web/apps/app/locales/en.json b/web/apps/app/locales/en.json index f8b62d89a6..1fcbb21414 100644 --- a/web/apps/app/locales/en.json +++ b/web/apps/app/locales/en.json @@ -156,6 +156,7 @@ "NoWidgetsHelpTextFirstLine": "Dashboard is a bit empty.", "NoWidgetsHelpTextSecondLine": "Start by adding a widget from widget store.", "DashboardSettings": "Dashboard settings", + "DashboardsLoadingError": "There was an error while loading dashboards. Please refresh the page.", "Cancel": "Cancel", "SaveChanges": "Save changes", "Advanced": "Advanced", diff --git a/web/apps/app/package.json b/web/apps/app/package.json index 1a73f9afde..7d91476b5f 100644 --- a/web/apps/app/package.json +++ b/web/apps/app/package.json @@ -30,7 +30,7 @@ "@enterwell/react-form-builder": "0.3.2", "@enterwell/react-form-validation": "1.4.0", "@enterwell/react-hooks": "0.5.0", - "@hcaptcha/react-hcaptcha": "1.10.3", + "@hcaptcha/react-hcaptcha": "1.11.0", "@microsoft/signalr": "8.0.7", "@monaco-editor/react": "4.6.0", "@next/env": "14.2.5", @@ -60,7 +60,7 @@ "next": "14.2.5", "next-secure-headers": "2.2.0", "next-themes": "0.3.0", - "openapi-fetch": "0.11.0", + "openapi-fetch": "0.11.1", "openapi-typescript": "7.3.0", "pigeon-maps": "0.21.6", "react": "18.3.1", @@ -71,7 +71,7 @@ "recharts": "2.12.7", "sharp": "0.33.4", "suncalc": "1.9.0", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7", "uuid": "10.0.0" }, diff --git a/web/apps/app/src/hooks/dashboards/useDashboard.ts b/web/apps/app/src/hooks/dashboards/useDashboard.ts index 85c24c9da3..ed95ce8b6b 100644 --- a/web/apps/app/src/hooks/dashboards/useDashboard.ts +++ b/web/apps/app/src/hooks/dashboards/useDashboard.ts @@ -1,11 +1,26 @@ import { useMemo } from 'react'; -import { IDashboardModel } from '../../dashboards/DashboardsRepository'; -import useDashboards from './useDashboards'; +import useEntity from '../signalco/entity/useEntity'; +import { dashboardModelFromEntity, IDashboardModel } from '../../dashboards/DashboardsRepository'; -export default function useDashboard(id?: string): Omit, 'data'> & { data: IDashboardModel | undefined } { - const dashboards = useDashboards(); - return useMemo(() => ({ - ...dashboards, - data: dashboards.data?.find(d => d.id === id) - }), [dashboards, id]); +export default function useDashboard(id?: string): Omit, 'data'> & { data: IDashboardModel | null | undefined } { + const dashboardEntity = useEntity(id); + const dashboard = useMemo(() => + dashboardEntity.data + ? dashboardModelFromEntity(dashboardEntity.data, 0, []) + : null, + [dashboardEntity.data]); + + if (!dashboardEntity.isLoading && Boolean(dashboardEntity.data) && dashboardEntity.data?.type !== 2) { + return { + isLoading: false, + error: new Error('Invalid dashboard entity'), + isPending: false, + isStale: true, + data: null + }; + } + return { + ...dashboardEntity, + data: dashboard + }; } diff --git a/web/apps/blog/package.json b/web/apps/blog/package.json index f7671f54f5..6b47555d5d 100644 --- a/web/apps/blog/package.json +++ b/web/apps/blog/package.json @@ -44,7 +44,7 @@ "react-dom": "18.3.1", "react-transition-group": "4.4.5", "sharp": "0.33.4", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "devDependencies": { diff --git a/web/apps/brandgrab/package.json b/web/apps/brandgrab/package.json index 29807f43a3..db327ff27e 100644 --- a/web/apps/brandgrab/package.json +++ b/web/apps/brandgrab/package.json @@ -51,7 +51,7 @@ "next-sitemap": "4.2.3", "postcss": "8.4.41", "sass": "1.77.8", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7", "typescript": "5.5.4" } diff --git a/web/apps/doprocess/package.json b/web/apps/doprocess/package.json index 882ddbd8d7..ada87e6da6 100644 --- a/web/apps/doprocess/package.json +++ b/web/apps/doprocess/package.json @@ -26,7 +26,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@enterwell/react-hooks": "0.5.0", - "@hcaptcha/react-hcaptcha": "1.10.3", + "@hcaptcha/react-hcaptcha": "1.11.0", "@next/env": "14.2.5", "@signalco/auth-client": "workspace:*", "@signalco/auth-server": "workspace:*", @@ -49,13 +49,13 @@ "next": "14.2.5", "next-secure-headers": "2.2.0", "next-themes": "0.3.0", - "openai": "4.55.5", + "openai": "4.55.9", "react": "18.3.1", "react-cool-inview": "3.0.1", "react-dom": "18.3.1", "react-transition-group": "4.4.5", "sharp": "0.33.4", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "devDependencies": { diff --git a/web/apps/slco/package.json b/web/apps/slco/package.json index 1086406e16..c8a758a0b7 100644 --- a/web/apps/slco/package.json +++ b/web/apps/slco/package.json @@ -18,7 +18,7 @@ "test": "playwright test" }, "dependencies": { - "@hcaptcha/react-hcaptcha": "1.10.3", + "@hcaptcha/react-hcaptcha": "1.11.0", "@next/env": "14.2.5", "@signalco/cms-components-marketing": "workspace:*", "@signalco/cms-core": "workspace:*", @@ -35,7 +35,7 @@ "react-dom": "18.3.1", "react-transition-group": "4.4.5", "sharp": "0.33.4", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "devDependencies": { diff --git a/web/apps/ui-docs/package.json b/web/apps/ui-docs/package.json index e103f67266..24deb27be5 100644 --- a/web/apps/ui-docs/package.json +++ b/web/apps/ui-docs/package.json @@ -35,7 +35,7 @@ "storybook-addon-swc": "1.2.0", "style-loader": "4.0.0", "styled-jsx": "5.1.6", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7", "typescript": "5.5.4" }, diff --git a/web/apps/uier/package.json b/web/apps/uier/package.json index 7fde032139..f3d189eab3 100644 --- a/web/apps/uier/package.json +++ b/web/apps/uier/package.json @@ -39,7 +39,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "sharp": "0.33.4", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "devDependencies": { diff --git a/web/apps/web/app/channels/[channelName]/page.tsx b/web/apps/web/app/channels/[channelName]/page.tsx index 92dfbad9eb..a4f32e9de5 100644 --- a/web/apps/web/app/channels/[channelName]/page.tsx +++ b/web/apps/web/app/channels/[channelName]/page.tsx @@ -9,7 +9,7 @@ import { NavigatingButton } from '@signalco/ui/NavigatingButton'; import { Breadcrumbs } from '@signalco/ui/Breadcrumbs'; import { channelCategories as channelCategoriesData, channelsData } from '@signalco/data/data'; import { SectionsView } from '@signalco/cms-core/SectionsView'; -import { channelsFaq } from '../page'; +import { channelsFaq } from '../data'; import { sectionsComponentRegistry } from '../../page'; import { KnownPages } from '../../../src/knownPages'; import ShareSocial from '../../../components/pages/ShareSocial'; diff --git a/web/apps/web/app/channels/data.ts b/web/apps/web/app/channels/data.ts new file mode 100644 index 0000000000..a42bbd2897 --- /dev/null +++ b/web/apps/web/app/channels/data.ts @@ -0,0 +1,17 @@ +import { KnownPages } from '../../src/knownPages'; + +export const channelsFaq = [ + { + component: 'Faq1', + header: 'FAQ', + description: 'Find answers to common questions about signalco channels.', + ctas: [ + { label: 'Contact', href: KnownPages.Contact }, + ], + features: [ + { id: 'channel', header: 'What is Channel?', description: 'Channel is Entity that contains all information required for connected online service, application or device. Channels can execute actions directly or contain connected entities to manage.' }, + { id: 'entities', header: 'What are Entities?', description: 'Entity is a thing you want to automate in signalco. This can be is online service connected to signalco, smart device, your custom space, automation process, etc.' }, + { id: 'executions', header: 'What are Executions?', description: 'Execution is when one of your automation processes executes one action (e.g.: when automation sends an email when new subscribes is added to a list).' }, + ] + } +]; \ No newline at end of file diff --git a/web/apps/web/app/channels/page.tsx b/web/apps/web/app/channels/page.tsx index 0c0e55e38d..cb7c705a1c 100644 --- a/web/apps/web/app/channels/page.tsx +++ b/web/apps/web/app/channels/page.tsx @@ -5,19 +5,7 @@ import { sectionsComponentRegistry } from '../page'; import PageCenterHeader from '../../components/pages/PageCenterHeader'; import CtaSection from '../../components/pages/CtaSection'; import ChannelsGallery from '../../components/channels/ChannelsGallery'; - -export const channelsFaq = [ - { - component: 'Faq1', - header: 'FAQ', - description: 'Find answers to common questions about signalco channels.', - features: [ - { id: 'channel', header: 'What is Channel?', description: 'Channel is Entity that contains all information required for connected online service, application or device. Channels can execute actions directly or contain connected entities to manage.' }, - { id: 'entities', header: 'What are Entities?', description: 'Entity is a thing you want to automate in signalco. This can be is online service connected to signalco, smart device, your custom space, automation process, etc.' }, - { id: 'executions', header: 'What are Executions?', description: 'Execution is when one of your automation processes executes one action (e.g.: when automation sends an email when new subscribes is added to a list).' }, - ] - } -]; +import { channelsFaq } from './data'; export default function ChannelsPage() { return ( diff --git a/web/apps/web/app/layout.tsx b/web/apps/web/app/layout.tsx index a2a7f13fe1..57bbe0d150 100644 --- a/web/apps/web/app/layout.tsx +++ b/web/apps/web/app/layout.tsx @@ -1,9 +1,92 @@ -import { ReactNode } from 'react'; +import { ReactNode, Fragment, PropsWithChildren } from 'react'; +import { ThemeProvider } from 'next-themes'; import { Viewport, type Metadata } from 'next'; import { Analytics } from '@vercel/analytics/react'; +import { Stack } from '@signalco/ui-primitives/Stack'; +import { Container } from '@signalco/ui-primitives/Container'; +import { CompanyX, CompanyReddit, CompanyGitHub } from '@signalco/ui-icons'; +import { NavigatingButton } from '@signalco/ui/NavigatingButton'; +import { PageNav, PageNavMenu } from '@signalco/ui/Nav'; +import { SectionData } from '@signalco/cms-core/SectionData'; +import { Footer1 } from '@signalco/cms-components-marketing/Footer'; +import { KnownPages } from '../src/knownPages'; +import { SystemStatusLabel } from '../components/pages/SystemStatusLabel'; +import SignalcoLogotype from '../components/icons/SignalcoLogotype'; import './global.css'; -import { RootClientProvider } from '../components/providers/RootClientProvider'; -import { PageLayout } from '../components/layouts/PageLayout'; + +const footerData: SectionData = { + tagline: 'signalco', + asset: , + features: [ + { + header: 'Product', + ctas: [ + { label: 'Features', href: KnownPages.Features }, + { label: 'Channels', href: KnownPages.Channels }, + { label: 'App', href: KnownPages.App }, + { label: 'Pricing', href: KnownPages.Pricing }, + { label: 'Roadmap', href: KnownPages.Roadmap }, + { label: 'All our products', href: KnownPages.Products } + ] + }, + { + header: 'Community', + ctas: [ + { label: 'r/signalco', href: 'https://www.reddit.com/r/signalco/' }, + { label: 'Discussions on GitHub', href: 'https://github.com/signalco-io/signalco/discussions' }, + ] + }, + { + header: 'Resources', + ctas: [ + { label: 'Status', href: KnownPages.Status }, + { label: 'Design', href: KnownPages.UiDocs }, + { label: 'API', href: KnownPages.DocsApi } + ] + }, + { + header: 'Legal', + ctas: [ + { label: 'Privacy Policy', href: KnownPages.LegalPrivacyPolicy }, + { label: 'Terms of Service', href: KnownPages.LegalTermsOfService }, + { label: 'Cookie Policy', href: KnownPages.LegalCookiePolicy }, + { label: 'Acceptable Use Policy', href: KnownPages.LegalAcceptableUsePolicy }, + { label: 'SLA', href: KnownPages.LegalSla }, + ] + }, + { + tagline: 'SystemStatus', + asset: + } + ], + ctas: [ + { label: 'X formerly known as Twitter', href: 'https://x.com/signalco_io', icon: }, + { label: 'reddit', href: 'https://www.reddit.com/r/signalco/', icon: }, + { label: 'GitHub', href: 'https://github.com/signalco-io/signalco', icon: }, + ] +}; + +export function PageLayout({ children, fullWidth }: PropsWithChildren<{ fullWidth?: boolean }>) { + const ContentContainer = fullWidth ? Fragment : Container; + return ( + + }> + + App + + +
+ + {children} + +
+ +
); +} export default function RootLayout({ children, }: { children: ReactNode; @@ -11,11 +94,11 @@ export default function RootLayout({ children, }: { return ( - + {children} - + diff --git a/web/apps/web/app/pricing/page.tsx b/web/apps/web/app/pricing/page.tsx index 340486e82b..44da9eb69e 100644 --- a/web/apps/web/app/pricing/page.tsx +++ b/web/apps/web/app/pricing/page.tsx @@ -3,12 +3,16 @@ import { SectionsView } from '@signalco/cms-core/SectionsView'; import { sectionPricing, sectionsComponentRegistry } from '../page'; import PageCenterHeader from '../../components/pages/PageCenterHeader'; import CtaSection from '../../components/pages/CtaSection'; +import { KnownPages } from '../../src/knownPages'; const pricingFaq = [ { component: 'Faq1', header: 'FAQ', description: 'Find answers to common questions about signalco pricing.', + ctas: [ + { label: 'Contact', href: KnownPages.Contact }, + ], features: [ { id: 'planForMe', header: 'Which plan is right for me?', description: 'Free plan is perfect for anyone who is looking to start with automation. Basic plan is great when you have many automations and services. Pro plan is next step that allows you to scale automations and need advanced features.' }, { id: 'entities', header: 'What are Entities?', description: 'Entity is a thing you want to automate in signalco. This can be is online service connected to signalco, smart device, your custom space, automation process, etc.' }, diff --git a/web/apps/web/app/roadmap/RoadmapSection.tsx b/web/apps/web/app/roadmap/RoadmapSection.tsx index e90adf175a..006dd0f874 100644 --- a/web/apps/web/app/roadmap/RoadmapSection.tsx +++ b/web/apps/web/app/roadmap/RoadmapSection.tsx @@ -2,8 +2,8 @@ import { useCallback } from 'react'; import { usePromise } from '@enterwell/react-hooks'; -import { RoadmapItem } from '../../api/github/[owner]/[repo]/issues/route'; import Roadmap from './roadmap'; +import { RoadmapItem } from '../api/github/[owner]/[repo]/issues/route'; export function RoadmapSection() { const fetchCallback = useCallback(() => fetch('/api/github/signalco-io/signalco/issues').then(res => res.json()), []); diff --git a/web/apps/web/app/security/page.tsx b/web/apps/web/app/security/page.tsx index 8e1b8ef17d..9ca95cf9c6 100644 --- a/web/apps/web/app/security/page.tsx +++ b/web/apps/web/app/security/page.tsx @@ -7,12 +7,16 @@ import { SectionsView } from '@signalco/cms-core/SectionsView'; import { sectionsComponentRegistry } from '../page'; import PageCenterHeader from '../../components/pages/PageCenterHeader'; import CtaSection from '../../components/pages/CtaSection'; +import { KnownPages } from '../../src/knownPages'; const securityFaq = [ { component: 'Faq1', header: 'FAQ', description: 'Find answers to common questions about signalco security.', + ctas: [ + { label: 'Contact', href: KnownPages.Contact }, + ], features: [ { id: 'isSignalcoSecure', diff --git a/web/apps/web/components/layouts/EmptyLayout.tsx b/web/apps/web/components/layouts/EmptyLayout.tsx deleted file mode 100644 index c088fc5491..0000000000 --- a/web/apps/web/components/layouts/EmptyLayout.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { PropsWithChildren } from 'react'; - -export function EmptyLayout(props: PropsWithChildren) { - return ( -
- ); -} diff --git a/web/apps/web/components/layouts/PageFullLayout.tsx b/web/apps/web/components/layouts/PageFullLayout.tsx deleted file mode 100644 index ae3bd6d074..0000000000 --- a/web/apps/web/components/layouts/PageFullLayout.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { PropsWithChildren } from 'react'; -import { PageLayout } from './PageLayout'; - -export function PageFullLayout(props: PropsWithChildren) { - return ; -} diff --git a/web/apps/web/components/layouts/PageLayout.tsx b/web/apps/web/components/layouts/PageLayout.tsx deleted file mode 100644 index 125352c52f..0000000000 --- a/web/apps/web/components/layouts/PageLayout.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { Fragment, PropsWithChildren } from 'react'; -import { Stack } from '@signalco/ui-primitives/Stack'; -import { Container } from '@signalco/ui-primitives/Container'; -import { CompanyX, CompanyReddit, CompanyGitHub } from '@signalco/ui-icons'; -import { NavigatingButton } from '@signalco/ui/NavigatingButton'; -import { PageNav, PageNavMenu } from '@signalco/ui/Nav'; -import { SectionData } from '@signalco/cms-core/SectionData'; -import { Footer1 } from '@signalco/cms-components-marketing/Footer'; -import { SystemStatusLabel } from '../pages/SystemStatusLabel'; -import SignalcoLogotype from '../icons/SignalcoLogotype'; -import { KnownPages } from '../../src/knownPages'; - -const footerData: SectionData = { - tagline: 'signalco', - asset: , - features: [ - { - header: 'Product', - ctas: [ - { label: 'Features', href: KnownPages.Features }, - { label: 'Channels', href: KnownPages.Channels }, - { label: 'App', href: KnownPages.App }, - { label: 'Pricing', href: KnownPages.Pricing }, - { label: 'Roadmap', href: KnownPages.Roadmap }, - { label: 'All our products', href: KnownPages.Products } - ] - }, - { - header: 'Community', - ctas: [ - { label: 'r/signalco', href: 'https://www.reddit.com/r/signalco/' }, - { label: 'Discussions on GitHub', href: 'https://github.com/signalco-io/signalco/discussions' }, - ] - }, - { - header: 'Resources', - ctas: [ - { label: 'Status', href: KnownPages.Status }, - { label: 'Design', href: KnownPages.UiDocs }, - { label: 'API', href: KnownPages.DocsApi } - ] - }, - { - header: 'Legal', - ctas: [ - { label: 'Privacy Policy', href: KnownPages.LegalPrivacyPolicy }, - { label: 'Terms of Service', href: KnownPages.LegalTermsOfService }, - { label: 'Cookie Policy', href: KnownPages.LegalCookiePolicy }, - { label: 'Acceptable Use Policy', href: KnownPages.LegalAcceptableUsePolicy }, - { label: 'SLA', href: KnownPages.LegalSla }, - ] - }, - { - tagline: 'SystemStatus', - asset: - } - ], - ctas: [ - { label: 'X formerly known as Twitter', href: 'https://x.com/signalco_io', icon: }, - { label: 'reddit', href: 'https://www.reddit.com/r/signalco/', icon: }, - { label: 'GitHub', href: 'https://github.com/signalco-io/signalco', icon: }, - ] -}; - -export function PageLayout({ children, fullWidth }: PropsWithChildren<{ fullWidth?: boolean }>) { - const ContentContainer = fullWidth ? Fragment : Container; - return ( - - }> - - App - - -
- - {children} - -
- -
); -} diff --git a/web/apps/web/components/providers/RootClientProvider.tsx b/web/apps/web/components/providers/RootClientProvider.tsx deleted file mode 100644 index c85587d9b1..0000000000 --- a/web/apps/web/components/providers/RootClientProvider.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { PropsWithChildren } from 'react'; -import { ThemeProvider } from 'next-themes' - -export function RootClientProvider({ children }: PropsWithChildren) { - return ( - - {children} - - ); -} \ No newline at end of file diff --git a/web/apps/web/package.json b/web/apps/web/package.json index 0ac8510d09..4fb8b0a5e0 100644 --- a/web/apps/web/package.json +++ b/web/apps/web/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@enterwell/react-hooks": "0.5.0", - "@hcaptcha/react-hcaptcha": "1.10.3", + "@hcaptcha/react-hcaptcha": "1.11.0", "@next/env": "14.2.5", "@reactflow/background": "11.3.14", "@reactflow/controls": "11.2.14", @@ -47,7 +47,7 @@ "react-dom": "18.3.1", "react-transition-group": "4.4.5", "sharp": "0.33.4", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "devDependencies": { diff --git a/web/apps/web/src/knownPages.ts b/web/apps/web/src/knownPages.ts index 77082c70ce..d7720a92e6 100644 --- a/web/apps/web/src/knownPages.ts +++ b/web/apps/web/src/knownPages.ts @@ -11,6 +11,7 @@ export const KnownPages = { Features: '/features', Roadmap: '/roadmap', Products: '/products', + Contact: '/contact', DocsApi: '/docs/api', UiDocs: `https://ui.signalco.${domainTld}`, Status: 'https://status.signalco.io', diff --git a/web/apps/workingparty/package.json b/web/apps/workingparty/package.json index a078daf099..64dd6cecb7 100644 --- a/web/apps/workingparty/package.json +++ b/web/apps/workingparty/package.json @@ -37,7 +37,7 @@ "@signalco/ui-notifications": "workspace:*", "@signalco/ui-primitives": "workspace:*", "@signalco/ui-themes-minimal-app": "workspace:*", - "@stripe/stripe-js": "4.2.0", + "@stripe/stripe-js": "4.3.0", "@tailwindcss/typography": "0.5.14", "@tanstack/react-query": "5.51.23", "@tanstack/react-query-devtools": "5.51.23", @@ -48,14 +48,14 @@ "next": "14.2.5", "next-secure-headers": "2.2.0", "next-themes": "0.3.0", - "openai": "4.55.5", + "openai": "4.55.9", "react": "18.3.1", "react-dom": "18.3.1", "react-email": "2.1.6", "react-markdown": "9.0.1", "sharp": "0.33.4", - "stripe": "16.7.0", - "tailwindcss": "3.4.9", + "stripe": "16.8.0", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "devDependencies": { diff --git a/web/package.json b/web/package.json index 0b87bb757e..cbad334f76 100644 --- a/web/package.json +++ b/web/package.json @@ -7,7 +7,7 @@ "packages/*" ], "license": "MIT", - "packageManager": "pnpm@9.7.0", + "packageManager": "pnpm@9.7.1", "scripts": { "build": "turbo run build", "clean": "turbo run clean", @@ -17,6 +17,6 @@ "test": "turbo run test" }, "devDependencies": { - "turbo": "2.0.12" + "turbo": "2.0.14" } } diff --git a/web/packages/eslint-config-signalco/package.json b/web/packages/eslint-config-signalco/package.json index 596b995fa9..4212f333a1 100644 --- a/web/packages/eslint-config-signalco/package.json +++ b/web/packages/eslint-config-signalco/package.json @@ -11,7 +11,7 @@ "@typescript-eslint/parser": "8.1.0", "eslint": "8.57.0", "eslint-config-next": "14.2.5", - "eslint-config-turbo": "2.0.12", + "eslint-config-turbo": "2.0.14", "eslint-plugin-import": "2.29.1", "eslint-plugin-only-warn": "1.1.0", "eslint-plugin-react": "7.35.0", diff --git a/web/packages/hooks/package.json b/web/packages/hooks/package.json index 919805c86b..3324b64014 100644 --- a/web/packages/hooks/package.json +++ b/web/packages/hooks/package.json @@ -24,7 +24,7 @@ "prepublishOnly": "tsup --env.NODE_ENV production" }, "devDependencies": { - "@microsoft/api-extractor": "7.47.5", + "@microsoft/api-extractor": "7.47.6", "@signalco/eslint-config-signalco": "workspace:*", "@signalco/js": "workspace:*", "@signalco/tsconfig": "workspace:*", diff --git a/web/packages/hooks/src/useSearchParam.ts b/web/packages/hooks/src/useSearchParam.ts index 262146af84..ea28305cf8 100644 --- a/web/packages/hooks/src/useSearchParam.ts +++ b/web/packages/hooks/src/useSearchParam.ts @@ -12,11 +12,11 @@ export function useSetSearchParam(parameterName: string): (value: string | undef const currentValue = searchParams.get(parameterName); if (currentValue === value || currentValue == null && value == null) { - console.debug('useSearchParam: Ignoring because value is the same as current value', parameterName, value, '===', currentValue); + console.debug('useSearchParam: Ignoring because value', parameterName, 'is the same as current value', parameterName, value, '===', currentValue); return; } - console.debug('useSearchParam: Setting value', parameterName, 'from', currentValue, 'to', value); + console.debug('useSearchParam: Setting value', parameterName, ' from', currentValue, 'to', value); const currentSearch = new URLSearchParams(Array.from(searchParams.entries())); if (value) diff --git a/web/packages/hooks/src/useWindowWidth.ts b/web/packages/hooks/src/useWindowWidth.ts deleted file mode 100644 index 509e43f1de..0000000000 --- a/web/packages/hooks/src/useWindowWidth.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { useCallback, useState } from 'react'; -import { useWindowEvent } from './useWindowEvent'; - -const browser = typeof window !== 'undefined'; - -export function useWindowWidth() { - const [width, setWidth] = useState(browser ? window.innerWidth : undefined); - - const updateNumberOfColumns = useCallback(() => { - setWidth(window.innerWidth || 0); - }, []); - - useWindowEvent('resize', updateNumberOfColumns); - - return width; -} diff --git a/web/packages/js/package.json b/web/packages/js/package.json index b665fa0088..44734e3130 100644 --- a/web/packages/js/package.json +++ b/web/packages/js/package.json @@ -24,7 +24,7 @@ "prepublishOnly": "tsup --env.NODE_ENV production" }, "devDependencies": { - "@microsoft/api-extractor": "7.47.5", + "@microsoft/api-extractor": "7.47.6", "@signalco/eslint-config-signalco": "workspace:*", "@signalco/tsconfig": "workspace:*", "react": "18.3.1", diff --git a/web/packages/tailwindcss-config-signalco/package.json b/web/packages/tailwindcss-config-signalco/package.json index 7da20e2d3c..1a5a8c6f1b 100644 --- a/web/packages/tailwindcss-config-signalco/package.json +++ b/web/packages/tailwindcss-config-signalco/package.json @@ -10,7 +10,7 @@ "./*": "./src/*.ts" }, "devDependencies": { - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7" }, "peerDependencies": { diff --git a/web/packages/ui-icons/package.json b/web/packages/ui-icons/package.json index 3109b99558..3d900f2c10 100644 --- a/web/packages/ui-icons/package.json +++ b/web/packages/ui-icons/package.json @@ -29,7 +29,7 @@ "typescript": "5.5.4", "@types/react": "18.3.3", "tsup": "8.2.4", - "@microsoft/api-extractor": "7.47.5" + "@microsoft/api-extractor": "7.47.6" }, "peerDependencies": { "react": ">=18", diff --git a/web/packages/ui-primitives/package.json b/web/packages/ui-primitives/package.json index 3534e69ae1..05e1bd421d 100644 --- a/web/packages/ui-primitives/package.json +++ b/web/packages/ui-primitives/package.json @@ -24,7 +24,7 @@ "prepublishOnly": "tsup --env.NODE_ENV production" }, "devDependencies": { - "@microsoft/api-extractor": "7.47.5", + "@microsoft/api-extractor": "7.47.6", "@radix-ui/react-checkbox": "1.1.1", "@radix-ui/react-dialog": "1.1.1", "@radix-ui/react-dropdown-menu": "2.1.1", @@ -46,12 +46,12 @@ "classix": "2.1.38", "next": "14.2.5", "postcss": "8.4.41", - "postcss-preset-env": "10.0.0", + "postcss-preset-env": "10.0.1", "react": "18.3.1", "react-dom": "18.3.1", "react-timeago": "7.2.0", "sass": "1.77.8", - "tailwind-merge": "2.5.0", + "tailwind-merge": "2.5.2", "tsup": "8.2.4", "typescript": "5.5.4" }, diff --git a/web/packages/ui-themes-minimal-app/package.json b/web/packages/ui-themes-minimal-app/package.json index 2a4f0c9bad..861ea7f6db 100644 --- a/web/packages/ui-themes-minimal-app/package.json +++ b/web/packages/ui-themes-minimal-app/package.json @@ -27,7 +27,7 @@ "prepublishOnly": "tsup" }, "devDependencies": { - "@microsoft/api-extractor": "7.47.5", + "@microsoft/api-extractor": "7.47.6", "@signalco/tailwindcss-config-signalco": "workspace:*", "@signalco/tsconfig": "workspace:*", "tsup": "8.2.4", diff --git a/web/packages/ui-themes-minimal/package.json b/web/packages/ui-themes-minimal/package.json index 58fc065436..fc52c2ddbe 100644 --- a/web/packages/ui-themes-minimal/package.json +++ b/web/packages/ui-themes-minimal/package.json @@ -27,7 +27,7 @@ "prepublishOnly": "tsup" }, "devDependencies": { - "@microsoft/api-extractor": "7.47.5", + "@microsoft/api-extractor": "7.47.6", "@signalco/tailwindcss-config-signalco": "workspace:*", "@signalco/tsconfig": "workspace:*", "tsup": "8.2.4", diff --git a/web/packages/ui/package.json b/web/packages/ui/package.json index c91211c089..07c90b2008 100644 --- a/web/packages/ui/package.json +++ b/web/packages/ui/package.json @@ -31,12 +31,12 @@ "autoprefixer": "10.4.20", "classix": "2.1.38", "postcss": "8.4.41", - "postcss-preset-env": "10.0.0", + "postcss-preset-env": "10.0.1", "react": "18.3.1", "react-dom": "18.3.1", "react-timeago": "7.2.0", "sass": "1.77.8", - "tailwind-merge": "2.5.0", + "tailwind-merge": "2.5.2", "typescript": "5.5.4" }, "peerDependencies": { diff --git a/web/packages/uier-toolbar/package.json b/web/packages/uier-toolbar/package.json index 79cfac2e29..b511687704 100644 --- a/web/packages/uier-toolbar/package.json +++ b/web/packages/uier-toolbar/package.json @@ -31,12 +31,12 @@ "@types/react-dom": "18.3.0", "autoprefixer": "10.4.20", "postcss": "8.4.41", - "postcss-preset-env": "10.0.0", + "postcss-preset-env": "10.0.1", "react": "18.3.1", "react-dom": "18.3.1", "react-timeago": "7.2.0", "sass": "1.77.8", - "tailwindcss": "3.4.9", + "tailwindcss": "3.4.10", "tailwindcss-animate": "1.0.7", "tsup": "8.2.4", "typescript": "5.5.4" diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 39d4b97540..d1cbb5e8b1 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: devDependencies: turbo: - specifier: 2.0.12 - version: 2.0.12 + specifier: 2.0.14 + version: 2.0.14 apps/app: dependencies: @@ -45,8 +45,8 @@ importers: specifier: 0.5.0 version: 0.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@hcaptcha/react-hcaptcha': - specifier: 1.10.3 - version: 1.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.11.0 + version: 1.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@microsoft/signalr': specifier: 8.0.7 version: 8.0.7(encoding@0.1.13) @@ -135,8 +135,8 @@ importers: specifier: 0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) openapi-fetch: - specifier: 0.11.0 - version: 0.11.0 + specifier: 0.11.1 + version: 0.11.1 openapi-typescript: specifier: 7.3.0 version: 7.3.0(encoding@0.1.13)(typescript@5.5.4) @@ -168,11 +168,11 @@ importers: specifier: 1.9.0 version: 1.9.0 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) uuid: specifier: 10.0.0 version: 10.0.0 @@ -331,11 +331,11 @@ importers: specifier: 0.33.4 version: 0.33.4 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) devDependencies: '@axe-core/playwright': specifier: 4.9.1 @@ -486,11 +486,11 @@ importers: specifier: 1.77.8 version: 1.77.8 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) typescript: specifier: 5.5.4 version: 5.5.4 @@ -525,8 +525,8 @@ importers: specifier: 0.5.0 version: 0.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@hcaptcha/react-hcaptcha': - specifier: 1.10.3 - version: 1.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.11.0 + version: 1.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@next/env': specifier: 14.2.5 version: 14.2.5 @@ -594,8 +594,8 @@ importers: specifier: 0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) openai: - specifier: 4.55.5 - version: 4.55.5(encoding@0.1.13) + specifier: 4.55.9 + version: 4.55.9(encoding@0.1.13) react: specifier: 18.3.1 version: 18.3.1 @@ -612,11 +612,11 @@ importers: specifier: 0.33.4 version: 0.33.4 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) devDependencies: '@axe-core/playwright': specifier: 4.9.1 @@ -664,8 +664,8 @@ importers: apps/slco: dependencies: '@hcaptcha/react-hcaptcha': - specifier: 1.10.3 - version: 1.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.11.0 + version: 1.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@next/env': specifier: 14.2.5 version: 14.2.5 @@ -715,11 +715,11 @@ importers: specifier: 0.33.4 version: 0.33.4 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) devDependencies: '@axe-core/playwright': specifier: 4.9.1 @@ -849,11 +849,11 @@ importers: specifier: 5.1.6 version: 5.1.6(@babel/core@7.25.2)(react@18.3.1) tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) typescript: specifier: 5.5.4 version: 5.5.4 @@ -927,11 +927,11 @@ importers: specifier: 0.33.4 version: 0.33.4 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) devDependencies: '@axe-core/playwright': specifier: 4.9.1 @@ -982,8 +982,8 @@ importers: specifier: 0.5.0 version: 0.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@hcaptcha/react-hcaptcha': - specifier: 1.10.3 - version: 1.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.11.0 + version: 1.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@next/env': specifier: 14.2.5 version: 14.2.5 @@ -1025,7 +1025,7 @@ importers: version: link:../../packages/ui-themes-minimal '@tailwindcss/typography': specifier: 0.5.14 - version: 0.5.14(tailwindcss@3.4.9) + version: 0.5.14(tailwindcss@3.4.10) '@vercel/analytics': specifier: 1.3.1 version: 1.3.1(next@14.2.5(@babel/core@7.25.2)(@playwright/test@1.46.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.8))(react@18.3.1) @@ -1066,11 +1066,11 @@ importers: specifier: 0.33.4 version: 0.33.4 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) devDependencies: '@axe-core/playwright': specifier: 4.9.1 @@ -1187,11 +1187,11 @@ importers: specifier: workspace:* version: link:../../packages/ui-themes-minimal-app '@stripe/stripe-js': - specifier: 4.2.0 - version: 4.2.0 + specifier: 4.3.0 + version: 4.3.0 '@tailwindcss/typography': specifier: 0.5.14 - version: 0.5.14(tailwindcss@3.4.9) + version: 0.5.14(tailwindcss@3.4.10) '@tanstack/react-query': specifier: 5.51.23 version: 5.51.23(react@18.3.1) @@ -1220,8 +1220,8 @@ importers: specifier: 0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) openai: - specifier: 4.55.5 - version: 4.55.5(encoding@0.1.13) + specifier: 4.55.9 + version: 4.55.9(encoding@0.1.13) react: specifier: 18.3.1 version: 18.3.1 @@ -1238,14 +1238,14 @@ importers: specifier: 0.33.4 version: 0.33.4 stripe: - specifier: 16.7.0 - version: 16.7.0 + specifier: 16.8.0 + version: 16.8.0 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) devDependencies: '@axe-core/playwright': specifier: 4.9.1 @@ -1483,8 +1483,8 @@ importers: specifier: 14.2.5 version: 14.2.5(eslint@8.57.0)(typescript@5.5.4) eslint-config-turbo: - specifier: 2.0.12 - version: 2.0.12(eslint@8.57.0) + specifier: 2.0.14 + version: 2.0.14(eslint@8.57.0) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) @@ -1496,7 +1496,7 @@ importers: version: 7.35.0(eslint@8.57.0) eslint-plugin-tailwindcss: specifier: 3.17.4 - version: 3.17.4(tailwindcss@3.4.9) + version: 3.17.4(tailwindcss@3.4.10) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1504,8 +1504,8 @@ importers: packages/hooks: devDependencies: '@microsoft/api-extractor': - specifier: 7.47.5 - version: 7.47.5(@types/node@22.2.0) + specifier: 7.47.6 + version: 7.47.6(@types/node@22.2.0) '@signalco/eslint-config-signalco': specifier: workspace:* version: link:../eslint-config-signalco @@ -1529,7 +1529,7 @@ importers: version: 18.3.1(react@18.3.1) tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1537,8 +1537,8 @@ importers: packages/js: devDependencies: '@microsoft/api-extractor': - specifier: 7.47.5 - version: 7.47.5(@types/node@22.2.0) + specifier: 7.47.6 + version: 7.47.6(@types/node@22.2.0) '@signalco/eslint-config-signalco': specifier: workspace:* version: link:../eslint-config-signalco @@ -1553,7 +1553,7 @@ importers: version: 18.3.1(react@18.3.1) tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1573,11 +1573,11 @@ importers: packages/tailwindcss-config-signalco: devDependencies: tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) packages/tsconfig: {} @@ -1641,8 +1641,8 @@ importers: specifier: 8.4.41 version: 8.4.41 postcss-preset-env: - specifier: 10.0.0 - version: 10.0.0(postcss@8.4.41) + specifier: 10.0.1 + version: 10.0.1(postcss@8.4.41) react: specifier: 18.3.1 version: 18.3.1 @@ -1656,8 +1656,8 @@ importers: specifier: 1.77.8 version: 1.77.8 tailwind-merge: - specifier: 2.5.0 - version: 2.5.0 + specifier: 2.5.2 + version: 2.5.2 typescript: specifier: 5.5.4 version: 5.5.4 @@ -1704,8 +1704,8 @@ importers: packages/ui-icons: devDependencies: '@microsoft/api-extractor': - specifier: 7.47.5 - version: 7.47.5(@types/node@22.2.0) + specifier: 7.47.6 + version: 7.47.6(@types/node@22.2.0) '@signalco/eslint-config-signalco': specifier: workspace:* version: link:../eslint-config-signalco @@ -1726,7 +1726,7 @@ importers: version: 18.3.1(react@18.3.1) tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1767,8 +1767,8 @@ importers: packages/ui-primitives: devDependencies: '@microsoft/api-extractor': - specifier: 7.47.5 - version: 7.47.5(@types/node@22.2.0) + specifier: 7.47.6 + version: 7.47.6(@types/node@22.2.0) '@radix-ui/react-checkbox': specifier: 1.1.1 version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1833,8 +1833,8 @@ importers: specifier: 8.4.41 version: 8.4.41 postcss-preset-env: - specifier: 10.0.0 - version: 10.0.0(postcss@8.4.41) + specifier: 10.0.1 + version: 10.0.1(postcss@8.4.41) react: specifier: 18.3.1 version: 18.3.1 @@ -1848,11 +1848,11 @@ importers: specifier: 1.77.8 version: 1.77.8 tailwind-merge: - specifier: 2.5.0 - version: 2.5.0 + specifier: 2.5.2 + version: 2.5.2 tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1867,8 +1867,8 @@ importers: version: 1.0.7(tailwindcss@3.4.9) devDependencies: '@microsoft/api-extractor': - specifier: 7.47.5 - version: 7.47.5(@types/node@22.2.0) + specifier: 7.47.6 + version: 7.47.6(@types/node@22.2.0) '@signalco/tailwindcss-config-signalco': specifier: workspace:* version: link:../tailwindcss-config-signalco @@ -1877,7 +1877,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1892,8 +1892,8 @@ importers: version: 1.0.7(tailwindcss@3.4.9) devDependencies: '@microsoft/api-extractor': - specifier: 7.47.5 - version: 7.47.5(@types/node@22.2.0) + specifier: 7.47.6 + version: 7.47.6(@types/node@22.2.0) '@signalco/tailwindcss-config-signalco': specifier: workspace:* version: link:../tailwindcss-config-signalco @@ -1902,7 +1902,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1955,8 +1955,8 @@ importers: specifier: 8.4.41 version: 8.4.41 postcss-preset-env: - specifier: 10.0.0 - version: 10.0.0(postcss@8.4.41) + specifier: 10.0.1 + version: 10.0.1(postcss@8.4.41) react: specifier: 18.3.1 version: 18.3.1 @@ -1970,14 +1970,14 @@ importers: specifier: 1.77.8 version: 1.77.8 tailwindcss: - specifier: 3.4.9 - version: 3.4.9 + specifier: 3.4.10 + version: 3.4.10 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.9) + version: 1.0.7(tailwindcss@3.4.10) tsup: specifier: 8.2.4 - version: 8.2.4(@microsoft/api-extractor@7.47.5(@types/node@20.14.15))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) + version: 8.2.4(@microsoft/api-extractor@7.47.6(@types/node@20.14.15))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2715,9 +2715,9 @@ packages: '@csstools/css-parser-algorithms': ^3.0.0 '@csstools/css-tokenizer': ^3.0.0 - '@csstools/color-helpers@4.2.1': - resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==} - engines: {node: ^14 || ^16 || >=18} + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + engines: {node: '>=18'} '@csstools/css-calc@2.0.0': resolution: {integrity: sha512-fxPxNrEVGeej4F35Xt69Q7gPMKa7oEGNxeP1DpA01sWpTF3Yhgux/0slVX3jLHd7dhlszeQlNAUhpAorVxoHdQ==} @@ -2726,8 +2726,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.0 '@csstools/css-tokenizer': ^3.0.0 - '@csstools/css-color-parser@3.0.0': - resolution: {integrity: sha512-F/A1Z3ZXH4fU6+29Up4QAZtewLmWLI4hVz6hyODMFvorx4AEC/03tu+gFq0nMZSDafC0lmapNOj9f4ctHMNaqQ==} + '@csstools/css-color-parser@3.0.1': + resolution: {integrity: sha512-++7I+Z7S/BWedPlR4z8aW1zsvtJFufFbpdPwdx5+W50dq5EYLV3sulitSNMry0BNmNMzeczdQij/f4C+ch01vQ==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.0 @@ -2756,14 +2756,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.0': - resolution: {integrity: sha512-e0RohXUxMsSzIS5s4xh218NiOYXAfby17L8KYe/6ITI8i4BiSFLpywMvpA/d6xPUGUfT20O+7JLBDHF3heYZRA==} + '@csstools/postcss-color-function@4.0.1': + resolution: {integrity: sha512-nRnwVdqdMUIsE7cGbI+La4fxME6tT9bVDRYfBHW/0QTLwCVJN4+DC/3kqiU6AdTne31hUBGPwcH1uzkuc4fO5A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.0': - resolution: {integrity: sha512-MWuSfaLKe1By/hSnjH/Hj7ZOIRZaLMNshCTkVuuqtZ0nfp+QRGUwf9nb2uPVKySYjKqNERANdA9Q0citA9hK1Q==} + '@csstools/postcss-color-mix-function@3.0.1': + resolution: {integrity: sha512-RRdu3CppF9dTn3AvDkeEkOL8ZDpDh/TF6YLV1JKl768BQk0XJ026xWfttoL911k0g8yprES3wFujjLsK0XhsEg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2786,20 +2786,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.0': - resolution: {integrity: sha512-JftxHVGt6PFfV/vWTDVKrrO0XyUA8OtuVykXhhMxue9qCzCCTSWqMHjZOvaOCCbxG1v2tGKV2FxBLQhzsZZPJg==} + '@csstools/postcss-gamut-mapping@2.0.1': + resolution: {integrity: sha512-bCQ609PZsGUmrTVeGaPgYF27DFQ7gg2no3j6qXY3MOAVjfPRvMIlGdpLejhgYra1VUoTNA1SUqHLNgFWoJ/pRA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.0': - resolution: {integrity: sha512-jmgh7C6ANVRPdFNMNIp426UFNuy01XXYwxbbyYV2fZBbmZleVLp6imxjw2XoaeHMdSiYoq8vOeX+GVzCyC7oOQ==} + '@csstools/postcss-gradients-interpolation-method@5.0.1': + resolution: {integrity: sha512-ZINUsXxFrJ5bpfpq772BQzu5K23dDFoQwvyeQRHHQpDOS8hMIoBMmjDjtZV5fGJ/gtL/blKUvytAyrgBzaqvUQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.0': - resolution: {integrity: sha512-Swb2CK/wKnsXEgT5GNlIO2C2h3lePn0Nmbsy48Z6yAht1XwQiDcxDAhqojg9LfonJVics+pzLM+IEQjPdgICNg==} + '@csstools/postcss-hwb-function@4.0.1': + resolution: {integrity: sha512-1SluTV2F2WiWPw5CHQ/UOsUrO5y89VDQlOICzHIF3Mx50YdTf0qYZ/dTXL/Fa+1AgzSn4IYt51XXjgxI7pe/jw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2822,8 +2822,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@2.0.0': - resolution: {integrity: sha512-1CHfwwckSJ4xYZYOgJD5u1NNlP85/6VqsQPL1geagvfpwm47hcGRDW+O3CD7KdexWGL45E5qKmL1bC2siqjmkg==} + '@csstools/postcss-light-dark-function@2.0.1': + resolution: {integrity: sha512-RHliBdalIg7KZNwv5B1VwF1qFEhmz3ZIbZXyxOH1g7W72S0oazMKIvYVgHenCxHCxWOxSR0ipZ+8kHa+fm4O5A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2882,8 +2882,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.0': - resolution: {integrity: sha512-4dwot1KLiFRFbYZV2XeeNoXQETK/3MaNCi4BpDlJ5J4XHF+VRwcppfCcqCC+TRucWanPFFlbt+X53nIuK7JVNg==} + '@csstools/postcss-oklab-function@4.0.1': + resolution: {integrity: sha512-hEJ83YhqNII3/TBGcJLjSkNx65p4Zbz6YFm6ww2BRRO223/GTFOHT2ElicWmnBtoZWKORgysI4wtLv3p6LZSFQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2894,8 +2894,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.0': - resolution: {integrity: sha512-iE/mgtuUeFMpMJhhrze9pu5xSEaueCTijs7lTnJ6MoTL50H9fquQp3bFVd2haAb/fDhO/nXTu67tzsm+zXsFzA==} + '@csstools/postcss-relative-color-syntax@3.0.1': + resolution: {integrity: sha512-GbcQPmfBOjKomHuOVB6troujQg65ykCMt4OGot75Bdev7jAHC9hd0AX5qMprpG9AF0dA012curAVqY0ehmdYwQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2912,8 +2912,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@4.0.0': - resolution: {integrity: sha512-vyJpbr2emWy8AOmBT+41LcAaaS8Q3jOMiMZRzrdV8uZgKI1I0NiB+UM7vJuwkFPhC3oXl7XPIPtajsyEAvI3kw==} + '@csstools/postcss-text-decoration-shorthand@4.0.1': + resolution: {integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -3498,8 +3498,8 @@ packages: '@hcaptcha/loader@1.2.4': resolution: {integrity: sha512-3MNrIy/nWBfyVVvMPBKdKrX7BeadgiimW0AL/a/8TohNtJqxoySKgTJEXOQvYwlHemQpUzFrIsK74ody7JiMYw==} - '@hcaptcha/react-hcaptcha@1.10.3': - resolution: {integrity: sha512-oQnAlBlXKsBaYBH0I9Bwt8nnaYAwHHVIC3khXVX/juYWG09TP36a5fqhzQ2GAODkmbB21gAa6aXCgHqrc9odKQ==} + '@hcaptcha/react-hcaptcha@1.11.0': + resolution: {integrity: sha512-UKHtzzVMHLTGwab5pgV96UbcXdyh5Qyq8E0G5DTyXq8txMvuDx7rSyC+BneOjWVW0a7O9VuZmkg/EznVLRE45g==} peerDependencies: react: '>= 16.3.0' react-dom: '>= 16.3.0' @@ -3699,11 +3699,11 @@ packages: '@types/react': '>=16' react: '>=16' - '@microsoft/api-extractor-model@7.29.4': - resolution: {integrity: sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==} + '@microsoft/api-extractor-model@7.29.5': + resolution: {integrity: sha512-axMwj4pgtYH6/IclP9ly33laSwTym1kBwSUcoHElc2LYAE5NNlhGT78ucEpIZtqEZaGgA8yxGXIyS17XCC2Iuw==} - '@microsoft/api-extractor@7.47.5': - resolution: {integrity: sha512-edKt4dFO2t25xmI2FX2rsP5liIgwKW1yuQImA0JM+5YGHCoo51GEQ7j+On17SvVpRJnuqLE/QVgtjIQ1Hpg98w==} + '@microsoft/api-extractor@7.47.6': + resolution: {integrity: sha512-saI7n319+PdJ8PAePr14LWeIPOW2fHSr3KZfYFqJ2VUpIc1TTSh6ATFZfLPWI1LK7eZHun8+FpNsuxonyvxTgQ==} hasBin: true '@microsoft/signalr@8.0.7': @@ -4655,8 +4655,8 @@ packages: '@rushstack/eslint-patch@1.10.2': resolution: {integrity: sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==} - '@rushstack/node-core-library@5.5.1': - resolution: {integrity: sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==} + '@rushstack/node-core-library@5.6.0': + resolution: {integrity: sha512-3ixIcEHseqU1sbnvoQkvxvfTYWbi1IIhnq/vexJcex7j6D8lnQCiYnd/E2oXbUH0Zv48CjtfslC/2MVFd71mpg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -4666,16 +4666,16 @@ packages: '@rushstack/rig-package@0.5.3': resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - '@rushstack/terminal@0.13.3': - resolution: {integrity: sha512-fc3zjXOw8E0pXS5t9vTiIPx9gHA0fIdTXsu9mT4WbH+P3mYvnrX0iAQ5a6NvyK1+CqYWBTw/wVNx7SDJkI+WYQ==} + '@rushstack/terminal@0.13.4': + resolution: {integrity: sha512-h7g2RuffpqBCDKOijlUmvQ0b2O9kpIOK9TWCX9IR+2kvudp6MdtCYDu29zeqweWwCSWUnuAaUfB5HT88s0YCiw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/ts-command-line@4.22.4': - resolution: {integrity: sha512-QoyhbWfyF9Ixg5DWdPzxO3h2RmJ7i5WH9b7qLzD5h5WFya/ZqicjdPrVwQiGtrFvAbBj8jhcC9DhbzU9xAk78g==} + '@rushstack/ts-command-line@4.22.5': + resolution: {integrity: sha512-eFm+5DJboPHAy3epLNQtmG+hDlBzS950g26nZPbciMQeXmZ5shGGNe6ERjV77wnr5IuxfLhYGJ4ZjPy8Z56MBA==} '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} @@ -4851,8 +4851,8 @@ packages: peerDependencies: storybook: ^8.2.9 - '@stripe/stripe-js@4.2.0': - resolution: {integrity: sha512-MdTpmXqtm+B9rIAmaSlCkF6qv3793UrghA95SFI4Ge7KGYWZAMYyxbX/z9FXs6XnU5gUbKtGtlVgZQp1T88UfQ==} + '@stripe/stripe-js@4.3.0': + resolution: {integrity: sha512-bf8MxzzgD3dybtyIJUQSDMqxjEkJfsmj9IdRqDv609Zw08R41O7eoIy0f8KY41u8MbaFOYsn+XGJZtg1xwR2wQ==} engines: {node: '>=12.16'} '@swc/core-darwin-arm64@1.3.101': @@ -6707,8 +6707,8 @@ packages: peerDependencies: eslint: '>6.6.0' - eslint-config-turbo@2.0.12: - resolution: {integrity: sha512-3PUzoyeJi2SjsTSjfWgTUIHK7kOqsapDEaOT7sCjFnZXvuhYLKxW37lysjq7+55abGGm0yQTXxNFLjrQKUORag==} + eslint-config-turbo@2.0.14: + resolution: {integrity: sha512-VkzAH/AR1/fjMsqzuurfWkEgyGVTTzfZQB1umDB8dMWzFhqo8p/2KEWbvRQLEvSFxjVfeJl5ErQAJ7h7DYglxg==} peerDependencies: eslint: '>6.6.0' @@ -6786,8 +6786,8 @@ packages: peerDependencies: eslint: '>6.6.0' - eslint-plugin-turbo@2.0.12: - resolution: {integrity: sha512-vXWKer7F0RPTcVy1B+hFTEK4mlEOpouB8MCAFD3WW4C6t98wvuDCsIPjxIldpxg7CnwmRxALpNWgNVkU2LVVEQ==} + eslint-plugin-turbo@2.0.14: + resolution: {integrity: sha512-E++MSAEeWZTU0FYARrfakMPq+7XeltqeY4JBDQTzbGEWG3kgYJPeYBMWsypcvBujVihQLlMu0S6ImnfV692mHg==} peerDependencies: eslint: '>6.6.0' @@ -8422,8 +8422,8 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} - openai@4.55.5: - resolution: {integrity: sha512-9OkMAMljFv1LxUFf5HLm/pw7zFd4yMgW+lKOYF80RBwuGWU+ZKF5BQGll+TEGAHu23YMeT8t6VSxI27c/DRAOA==} + openai@4.55.9: + resolution: {integrity: sha512-gO2BVMuGirwoftSXw6OnC6YvLK+1ZuUrAlDfWAyDbWUuXsJ+RGDAjA7ZCTocgAwSzDZNUYUr3SJ7siFaF5zquQ==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -8431,14 +8431,14 @@ packages: zod: optional: true - openapi-fetch@0.11.0: - resolution: {integrity: sha512-Z1PPrAdlHUzAqaiUbPslMPBSL9MC3mvN4zy49GiPOZm+jGvkyv8Y9lE6G43RirYjIQdur/s8RSOr7qiNAMoWGg==} + openapi-fetch@0.11.1: + resolution: {integrity: sha512-WtDQsrvxjXuCmo6u6WMQPfUaya8cLfL+ZCaXorPo9MMumqlU/Km/SrCXsEcJH234D4iykOkvJ6Q/iWBzK7+3rA==} openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - openapi-typescript-helpers@0.0.11: - resolution: {integrity: sha512-xofUHlVFq+BMquf3nh9I8N2guHckW6mrDO/F3kaFgrL7MGbjldDnQ9TIT+rkH/+H0LiuO+RuZLnNmsJwsjwUKg==} + openapi-typescript-helpers@0.0.12: + resolution: {integrity: sha512-FO+5kTWO6KDutigamr2MRwciYkAUYhqdctlyVRrQOe2uxif2/O2+GcS07jNnP36AUK6ubSsGu3GeBiYIc6eQzA==} openapi-typescript@7.3.0: resolution: {integrity: sha512-EkljRjYWOPwGXiK++uI9MkGv2Y7uhbkZbi9V1z3r3EpmWVO6aFTHXSLNvxIWo6UT6LCTYgEYkUB3BWQjwwXthg==} @@ -8657,8 +8657,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.0: - resolution: {integrity: sha512-WjOCE1FJb2xIeFvF40CISn9yUMtzwkgjdbjXmWjbrC1wAgQiB763h7bsip9piGtAkbeM5Pi9hVIDSmtbWrlqLw==} + postcss-color-functional-notation@7.0.1: + resolution: {integrity: sha512-8/wf01pTH3XHT37wre+E2GNcsttZ62PWSJ0DE66GO+Uzk+uyr9DH+V3cdJG+BqezCD/T5lBC1s5/t7Y12ps8QQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -8746,8 +8746,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.0: - resolution: {integrity: sha512-Qyrlog4fAJcbwiWHiwkpDLlSRnvk2dFYqygQ29sMbhCoq6B/Jtj89u89VFNaAatW8KkDDAeNzVvabK9NBD9hJA==} + postcss-lab-function@7.0.1: + resolution: {integrity: sha512-G9ecsdU+TtdHJvaTrfbIyOa3iHHJMZXdvsLXJSN8IP4cfg3XraozacAt6P7xzaILIC3XPGMM149oKhf2tjPubg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -8860,8 +8860,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.0.0: - resolution: {integrity: sha512-zoLkIGK30hkLhHVD6jNqcO6gDVDzyo10s42XG++Gsy9z6gk1X/UpI2Zn28ylGD9VnQSSdQMzuk535rRq2JmWkg==} + postcss-preset-env@10.0.1: + resolution: {integrity: sha512-I8m4pBJWcUmPLu1z8HySEiAROKIMA0nwUYCGr1gJOGFP9BdwPWPBSYvA2KGH0VjUZ8AAAvwwXXWnxHTWq3f7UQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9659,8 +9659,8 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - stripe@16.7.0: - resolution: {integrity: sha512-BJCSEtqN8LJsPuPkjQmB/LlBl00uxi9FIPa6LNcF80ofMKqfnuervDhwWSZqCs6xJk/i9vx1D9lRoDnqSmym2w==} + stripe@16.8.0: + resolution: {integrity: sha512-6rOIcGOkxcc29jvhEyOYmpPFilekOBV+7vpemAoIAfbtCRW1yxzdDGM0/0vyekHglLL+wqGpP5ldrhO3dJ2JEQ==} engines: {node: '>=12.*'} style-loader@4.0.0: @@ -9741,8 +9741,8 @@ packages: tailwind-merge@2.2.0: resolution: {integrity: sha512-SqqhhaL0T06SW59+JVNfAqKdqLs0497esifRrZ7jOaefP3o64fdFNDMrAQWZFMxTLJPiHVjRLUywT8uFz1xNWQ==} - tailwind-merge@2.5.0: - resolution: {integrity: sha512-a6Q/isR5XAo9IR7Hjh80BQDkn8PG9ONJpSO/U3vGzdKyKG125lPHNXdiPfeQ5X0EOG0qKlS/0qnxdBYkLlD6tA==} + tailwind-merge@2.5.2: + resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==} tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} @@ -9754,6 +9754,11 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@3.4.10: + resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} + engines: {node: '>=14.0.0'} + hasBin: true + tailwindcss@3.4.9: resolution: {integrity: sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==} engines: {node: '>=14.0.0'} @@ -9899,38 +9904,38 @@ packages: typescript: optional: true - turbo-darwin-64@2.0.12: - resolution: {integrity: sha512-NAgfgbXxX/JScWQmmQnGbPuFZq7LIswHfcMk5JwyBXQM/xmklNOxxac7MnGGIOf19Z2f6S3qHy17VIj0SeGfnA==} + turbo-darwin-64@2.0.14: + resolution: {integrity: sha512-kwfDmjNwlNfvtrvT29+ZBg5n1Wvxl891bFHchMJyzMoR0HOE9N1NSNdSZb9wG3e7sYNIu4uDkNk+VBEqJW0HzQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.0.12: - resolution: {integrity: sha512-cP02uer5KSJ+fXL+OfRRk5hnVjV0c60hxDgNcJxrZpfhun7HHoKDDR7w2xhQntiA45aC6ZZEXRqMKpj6GAmKbg==} + turbo-darwin-arm64@2.0.14: + resolution: {integrity: sha512-m3LXYEshCx3wc4ZClM6gb01KYpFmtjQ9IBF3A7ofjb6ahux3xlYZJZ3uFCLAGHuvGLuJ3htfiPbwlDPTdknqqw==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.0.12: - resolution: {integrity: sha512-+mQgGfg1eq5qF+wenK/FKJaNMNAo5DQLC4htQy+8osW+fx6U+8+6UlPQPaycAWDEqwOI7NwuqkeHfkEQLQUTyQ==} + turbo-linux-64@2.0.14: + resolution: {integrity: sha512-7vBzCPdoTtR92SNn2JMgj1FlMmyonGmpMaQdgAB1OVYtuQ6NVGoh7/lODfaILqXjpvmFSVbpBIDrKOT6EvcprQ==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.0.12: - resolution: {integrity: sha512-KFyEZDXfPU1DK4zimxdCcqAcK7IIttX4mfsgB7NsSEOmH0dhHOih/YFYiyEDC1lTRx0C2RlzQ0Kjjdz48AN5Eg==} + turbo-linux-arm64@2.0.14: + resolution: {integrity: sha512-jwH+c0bfjpBf26K/tdEFatmnYyXwGROjbr6bZmNcL8R+IkGAc/cglL+OToqJnQZTgZvH7uDGbeSyUo7IsHyjuA==} cpu: [arm64] os: [linux] - turbo-windows-64@2.0.12: - resolution: {integrity: sha512-kJj4KCkZTkDTDCqsSw1m1dbO4WeoQq1mYUm/thXOH0OkeqYbSMt0EyoTcJOgKUDsrMnzZD2gPfYrlYHtV69lVA==} + turbo-windows-64@2.0.14: + resolution: {integrity: sha512-w9/XwkHSzvLjmioo6cl3S1yRfI6swxsV1j1eJwtl66JM4/pn0H2rBa855R0n7hZnmI6H5ywLt/nLt6Ae8RTDmw==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.0.12: - resolution: {integrity: sha512-TY3ROxguDilN2olCwcZMaePdW01Xhma0pZU7bNhsQEqca9RGAmsZBuzfGnTMcWPmv4tpnb/PlX1hrt1Hod/44Q==} + turbo-windows-arm64@2.0.14: + resolution: {integrity: sha512-XaQlyYk+Rf4xS5XWCo8XCMIpssgGGy8blzLfolN6YBp4baElIWMlkLZHDbGyiFmCbNf9I9gJI64XGRG+LVyyjA==} cpu: [arm64] os: [win32] - turbo@2.0.12: - resolution: {integrity: sha512-8s2KwqjwQj7z8Z53SUZSKVkQOZ2/Sl4D2F440oaBY/k2lGju60dW6srEpnn8/RIDeICZmQn3pQHF79Jfnc5Skw==} + turbo@2.0.14: + resolution: {integrity: sha512-00JjdCMD/cpsjP0Izkjcm8Oaor5yUCfDwODtaLb+WyblyadkaDEisGhy3Dbd5az9n+5iLSPiUgf+WjPbns6MRg==} hasBin: true type-check@0.4.0: @@ -11515,16 +11520,16 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 - '@csstools/color-helpers@4.2.1': {} + '@csstools/color-helpers@5.0.1': {} '@csstools/css-calc@2.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0)': dependencies: '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 - '@csstools/css-color-parser@3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0)': + '@csstools/css-color-parser@3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0)': dependencies: - '@csstools/color-helpers': 4.2.1 + '@csstools/color-helpers': 5.0.1 '@csstools/css-calc': 2.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 @@ -11546,18 +11551,18 @@ snapshots: postcss: 8.4.41 postcss-selector-parser: 6.1.1 - '@csstools/postcss-color-function@4.0.0(postcss@8.4.41)': + '@csstools/postcss-color-function@4.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) '@csstools/utilities': 2.0.0(postcss@8.4.41) postcss: 8.4.41 - '@csstools/postcss-color-mix-function@3.0.0(postcss@8.4.41)': + '@csstools/postcss-color-mix-function@3.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) @@ -11585,25 +11590,25 @@ snapshots: postcss: 8.4.41 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.0(postcss@8.4.41)': + '@csstools/postcss-gamut-mapping@2.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 postcss: 8.4.41 - '@csstools/postcss-gradients-interpolation-method@5.0.0(postcss@8.4.41)': + '@csstools/postcss-gradients-interpolation-method@5.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) '@csstools/utilities': 2.0.0(postcss@8.4.41) postcss: 8.4.41 - '@csstools/postcss-hwb-function@4.0.0(postcss@8.4.41)': + '@csstools/postcss-hwb-function@4.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) @@ -11627,7 +11632,7 @@ snapshots: postcss: 8.4.41 postcss-selector-parser: 6.1.1 - '@csstools/postcss-light-dark-function@2.0.0(postcss@8.4.41)': + '@csstools/postcss-light-dark-function@2.0.1(postcss@8.4.41)': dependencies: '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 @@ -11684,9 +11689,9 @@ snapshots: postcss: 8.4.41 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.0(postcss@8.4.41)': + '@csstools/postcss-oklab-function@4.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) @@ -11698,9 +11703,9 @@ snapshots: postcss: 8.4.41 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@3.0.0(postcss@8.4.41)': + '@csstools/postcss-relative-color-syntax@3.0.1(postcss@8.4.41)': dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) @@ -11719,9 +11724,9 @@ snapshots: '@csstools/css-tokenizer': 3.0.0 postcss: 8.4.41 - '@csstools/postcss-text-decoration-shorthand@4.0.0(postcss@8.4.41)': + '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.41)': dependencies: - '@csstools/color-helpers': 4.2.1 + '@csstools/color-helpers': 5.0.1 postcss: 8.4.41 postcss-value-parser: 4.2.0 @@ -12110,7 +12115,7 @@ snapshots: '@hcaptcha/loader@1.2.4': {} - '@hcaptcha/react-hcaptcha@1.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@hcaptcha/react-hcaptcha@1.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.0 '@hcaptcha/loader': 1.2.4 @@ -12311,32 +12316,32 @@ snapshots: '@types/react': 18.3.3 react: 18.3.1 - '@microsoft/api-extractor-model@7.29.4(@types/node@20.14.15)': + '@microsoft/api-extractor-model@7.29.5(@types/node@20.14.15)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.5.1(@types/node@20.14.15) + '@rushstack/node-core-library': 5.6.0(@types/node@20.14.15) transitivePeerDependencies: - '@types/node' optional: true - '@microsoft/api-extractor-model@7.29.4(@types/node@22.2.0)': + '@microsoft/api-extractor-model@7.29.5(@types/node@22.2.0)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.5.1(@types/node@22.2.0) + '@rushstack/node-core-library': 5.6.0(@types/node@22.2.0) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.5(@types/node@20.14.15)': + '@microsoft/api-extractor@7.47.6(@types/node@20.14.15)': dependencies: - '@microsoft/api-extractor-model': 7.29.4(@types/node@20.14.15) + '@microsoft/api-extractor-model': 7.29.5(@types/node@20.14.15) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.5.1(@types/node@20.14.15) + '@rushstack/node-core-library': 5.6.0(@types/node@20.14.15) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.13.3(@types/node@20.14.15) - '@rushstack/ts-command-line': 4.22.4(@types/node@20.14.15) + '@rushstack/terminal': 0.13.4(@types/node@20.14.15) + '@rushstack/ts-command-line': 4.22.5(@types/node@20.14.15) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 @@ -12347,15 +12352,15 @@ snapshots: - '@types/node' optional: true - '@microsoft/api-extractor@7.47.5(@types/node@22.2.0)': + '@microsoft/api-extractor@7.47.6(@types/node@22.2.0)': dependencies: - '@microsoft/api-extractor-model': 7.29.4(@types/node@22.2.0) + '@microsoft/api-extractor-model': 7.29.5(@types/node@22.2.0) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.5.1(@types/node@22.2.0) + '@rushstack/node-core-library': 5.6.0(@types/node@22.2.0) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.13.3(@types/node@22.2.0) - '@rushstack/ts-command-line': 4.22.4(@types/node@22.2.0) + '@rushstack/terminal': 0.13.4(@types/node@22.2.0) + '@rushstack/ts-command-line': 4.22.5(@types/node@22.2.0) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 @@ -13536,7 +13541,7 @@ snapshots: '@rushstack/eslint-patch@1.10.2': {} - '@rushstack/node-core-library@5.5.1(@types/node@20.14.15)': + '@rushstack/node-core-library@5.6.0(@types/node@20.14.15)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -13550,7 +13555,7 @@ snapshots: '@types/node': 20.14.15 optional: true - '@rushstack/node-core-library@5.5.1(@types/node@22.2.0)': + '@rushstack/node-core-library@5.6.0(@types/node@22.2.0)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -13568,24 +13573,24 @@ snapshots: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.13.3(@types/node@20.14.15)': + '@rushstack/terminal@0.13.4(@types/node@20.14.15)': dependencies: - '@rushstack/node-core-library': 5.5.1(@types/node@20.14.15) + '@rushstack/node-core-library': 5.6.0(@types/node@20.14.15) supports-color: 8.1.1 optionalDependencies: '@types/node': 20.14.15 optional: true - '@rushstack/terminal@0.13.3(@types/node@22.2.0)': + '@rushstack/terminal@0.13.4(@types/node@22.2.0)': dependencies: - '@rushstack/node-core-library': 5.5.1(@types/node@22.2.0) + '@rushstack/node-core-library': 5.6.0(@types/node@22.2.0) supports-color: 8.1.1 optionalDependencies: '@types/node': 22.2.0 - '@rushstack/ts-command-line@4.22.4(@types/node@20.14.15)': + '@rushstack/ts-command-line@4.22.5(@types/node@20.14.15)': dependencies: - '@rushstack/terminal': 0.13.3(@types/node@20.14.15) + '@rushstack/terminal': 0.13.4(@types/node@20.14.15) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -13593,9 +13598,9 @@ snapshots: - '@types/node' optional: true - '@rushstack/ts-command-line@4.22.4(@types/node@22.2.0)': + '@rushstack/ts-command-line@4.22.5(@types/node@22.2.0)': dependencies: - '@rushstack/terminal': 0.13.3(@types/node@22.2.0) + '@rushstack/terminal': 0.13.4(@types/node@22.2.0) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -13875,7 +13880,7 @@ snapshots: dependencies: storybook: 8.2.9(@babel/preset-env@7.24.8(@babel/core@7.25.2)) - '@stripe/stripe-js@4.2.0': {} + '@stripe/stripe-js@4.3.0': {} '@swc/core-darwin-arm64@1.3.101': optional: true @@ -13991,13 +13996,13 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tailwindcss/typography@0.5.14(tailwindcss@3.4.9)': + '@tailwindcss/typography@0.5.14(tailwindcss@3.4.10)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.9 + tailwindcss: 3.4.10 '@tanstack/query-core@5.51.21': {} @@ -15968,10 +15973,10 @@ snapshots: eslint: 9.9.0(jiti@1.21.6) eslint-plugin-turbo: 1.10.12(eslint@9.9.0(jiti@1.21.6)) - eslint-config-turbo@2.0.12(eslint@8.57.0): + eslint-config-turbo@2.0.14(eslint@8.57.0): dependencies: eslint: 8.57.0 - eslint-plugin-turbo: 2.0.12(eslint@8.57.0) + eslint-plugin-turbo: 2.0.14(eslint@8.57.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -16121,11 +16126,11 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-tailwindcss@3.17.4(tailwindcss@3.4.9): + eslint-plugin-tailwindcss@3.17.4(tailwindcss@3.4.10): dependencies: fast-glob: 3.3.2 postcss: 8.4.41 - tailwindcss: 3.4.9 + tailwindcss: 3.4.10 eslint-plugin-turbo@1.10.12(eslint@8.57.0): dependencies: @@ -16137,7 +16142,7 @@ snapshots: dotenv: 16.0.3 eslint: 9.9.0(jiti@1.21.6) - eslint-plugin-turbo@2.0.12(eslint@8.57.0): + eslint-plugin-turbo@2.0.14(eslint@8.57.0): dependencies: dotenv: 16.0.3 eslint: 8.57.0 @@ -18338,7 +18343,7 @@ snapshots: dependencies: mimic-fn: 4.0.0 - openai@4.55.5(encoding@0.1.13): + openai@4.55.9(encoding@0.1.13): dependencies: '@types/node': 18.19.43 '@types/node-fetch': 2.6.11 @@ -18350,13 +18355,13 @@ snapshots: transitivePeerDependencies: - encoding - openapi-fetch@0.11.0: + openapi-fetch@0.11.1: dependencies: - openapi-typescript-helpers: 0.0.11 + openapi-typescript-helpers: 0.0.12 openapi-types@12.1.3: {} - openapi-typescript-helpers@0.0.11: {} + openapi-typescript-helpers@0.0.12: {} openapi-typescript@7.3.0(encoding@0.1.13)(typescript@5.5.4): dependencies: @@ -18574,9 +18579,9 @@ snapshots: postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.0(postcss@8.4.41): + postcss-color-functional-notation@7.0.1(postcss@8.4.41): dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) @@ -18668,9 +18673,9 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.41 - postcss-lab-function@7.0.0(postcss@8.4.41): + postcss-lab-function@7.0.1(postcss@8.4.41): dependencies: - '@csstools/css-color-parser': 3.0.0(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) + '@csstools/css-color-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.0(@csstools/css-tokenizer@3.0.0))(@csstools/css-tokenizer@3.0.0) '@csstools/css-parser-algorithms': 3.0.0(@csstools/css-tokenizer@3.0.0) '@csstools/css-tokenizer': 3.0.0 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) @@ -18759,21 +18764,21 @@ snapshots: postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-preset-env@10.0.0(postcss@8.4.41): + postcss-preset-env@10.0.1(postcss@8.4.41): dependencies: '@csstools/postcss-cascade-layers': 5.0.0(postcss@8.4.41) - '@csstools/postcss-color-function': 4.0.0(postcss@8.4.41) - '@csstools/postcss-color-mix-function': 3.0.0(postcss@8.4.41) + '@csstools/postcss-color-function': 4.0.1(postcss@8.4.41) + '@csstools/postcss-color-mix-function': 3.0.1(postcss@8.4.41) '@csstools/postcss-content-alt-text': 2.0.0(postcss@8.4.41) '@csstools/postcss-exponential-functions': 2.0.0(postcss@8.4.41) '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.41) - '@csstools/postcss-gamut-mapping': 2.0.0(postcss@8.4.41) - '@csstools/postcss-gradients-interpolation-method': 5.0.0(postcss@8.4.41) - '@csstools/postcss-hwb-function': 4.0.0(postcss@8.4.41) + '@csstools/postcss-gamut-mapping': 2.0.1(postcss@8.4.41) + '@csstools/postcss-gradients-interpolation-method': 5.0.1(postcss@8.4.41) + '@csstools/postcss-hwb-function': 4.0.1(postcss@8.4.41) '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.41) '@csstools/postcss-initial': 2.0.0(postcss@8.4.41) '@csstools/postcss-is-pseudo-class': 5.0.0(postcss@8.4.41) - '@csstools/postcss-light-dark-function': 2.0.0(postcss@8.4.41) + '@csstools/postcss-light-dark-function': 2.0.1(postcss@8.4.41) '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.41) '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.41) '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.41) @@ -18783,12 +18788,12 @@ snapshots: '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.0(postcss@8.4.41) '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.41) '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.41) - '@csstools/postcss-oklab-function': 4.0.0(postcss@8.4.41) + '@csstools/postcss-oklab-function': 4.0.1(postcss@8.4.41) '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.41) - '@csstools/postcss-relative-color-syntax': 3.0.0(postcss@8.4.41) + '@csstools/postcss-relative-color-syntax': 3.0.1(postcss@8.4.41) '@csstools/postcss-scope-pseudo-class': 4.0.0(postcss@8.4.41) '@csstools/postcss-stepped-value-functions': 4.0.0(postcss@8.4.41) - '@csstools/postcss-text-decoration-shorthand': 4.0.0(postcss@8.4.41) + '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.41) '@csstools/postcss-trigonometric-functions': 4.0.0(postcss@8.4.41) '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.41) autoprefixer: 10.4.20(postcss@8.4.41) @@ -18800,7 +18805,7 @@ snapshots: postcss: 8.4.41 postcss-attribute-case-insensitive: 7.0.0(postcss@8.4.41) postcss-clamp: 4.1.0(postcss@8.4.41) - postcss-color-functional-notation: 7.0.0(postcss@8.4.41) + postcss-color-functional-notation: 7.0.1(postcss@8.4.41) postcss-color-hex-alpha: 10.0.0(postcss@8.4.41) postcss-color-rebeccapurple: 10.0.0(postcss@8.4.41) postcss-custom-media: 11.0.0(postcss@8.4.41) @@ -18813,7 +18818,7 @@ snapshots: postcss-font-variant: 5.0.0(postcss@8.4.41) postcss-gap-properties: 6.0.0(postcss@8.4.41) postcss-image-set-function: 7.0.0(postcss@8.4.41) - postcss-lab-function: 7.0.0(postcss@8.4.41) + postcss-lab-function: 7.0.1(postcss@8.4.41) postcss-logical: 8.0.0(postcss@8.4.41) postcss-nesting: 13.0.0(postcss@8.4.41) postcss-opacity-percentage: 2.0.0(postcss@8.4.41) @@ -20023,7 +20028,7 @@ snapshots: strip-json-comments@3.1.1: {} - stripe@16.7.0: + stripe@16.8.0: dependencies: '@types/node': 20.14.15 qs: 6.12.3 @@ -20100,7 +20105,11 @@ snapshots: dependencies: '@babel/runtime': 7.25.0 - tailwind-merge@2.5.0: {} + tailwind-merge@2.5.2: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.10): + dependencies: + tailwindcss: 3.4.10 tailwindcss-animate@1.0.7(tailwindcss@3.4.9): dependencies: @@ -20133,6 +20142,33 @@ snapshots: transitivePeerDependencies: - ts-node + tailwindcss@3.4.10: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.7 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.1 + postcss: 8.4.41 + postcss-import: 15.1.0(postcss@8.4.41) + postcss-js: 4.0.1(postcss@8.4.41) + postcss-load-config: 4.0.2(postcss@8.4.41) + postcss-nested: 6.2.0(postcss@8.4.41) + postcss-selector-parser: 6.1.1 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + tailwindcss@3.4.9: dependencies: '@alloc/quick-lru': 5.2.0 @@ -20298,7 +20334,7 @@ snapshots: tslib@2.6.3: {} - tsup@8.2.4(@microsoft/api-extractor@7.47.5(@types/node@20.14.15))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0): + tsup@8.2.4(@microsoft/api-extractor@7.47.6(@types/node@20.14.15))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0): dependencies: bundle-require: 5.0.0(esbuild@0.23.0) cac: 6.7.14 @@ -20317,7 +20353,7 @@ snapshots: sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.47.5(@types/node@20.14.15) + '@microsoft/api-extractor': 7.47.6(@types/node@20.14.15) '@swc/core': 1.7.10(@swc/helpers@0.5.12) postcss: 8.4.41 typescript: 5.5.4 @@ -20327,7 +20363,7 @@ snapshots: - tsx - yaml - tsup@8.2.4(@microsoft/api-extractor@7.47.5(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0): + tsup@8.2.4(@microsoft/api-extractor@7.47.6(@types/node@22.2.0))(@swc/core@1.7.10(@swc/helpers@0.5.12))(jiti@1.21.6)(postcss@8.4.41)(typescript@5.5.4)(yaml@2.5.0): dependencies: bundle-require: 5.0.0(esbuild@0.23.0) cac: 6.7.14 @@ -20346,7 +20382,7 @@ snapshots: sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.47.5(@types/node@22.2.0) + '@microsoft/api-extractor': 7.47.6(@types/node@22.2.0) '@swc/core': 1.7.10(@swc/helpers@0.5.12) postcss: 8.4.41 typescript: 5.5.4 @@ -20356,32 +20392,32 @@ snapshots: - tsx - yaml - turbo-darwin-64@2.0.12: + turbo-darwin-64@2.0.14: optional: true - turbo-darwin-arm64@2.0.12: + turbo-darwin-arm64@2.0.14: optional: true - turbo-linux-64@2.0.12: + turbo-linux-64@2.0.14: optional: true - turbo-linux-arm64@2.0.12: + turbo-linux-arm64@2.0.14: optional: true - turbo-windows-64@2.0.12: + turbo-windows-64@2.0.14: optional: true - turbo-windows-arm64@2.0.12: + turbo-windows-arm64@2.0.14: optional: true - turbo@2.0.12: + turbo@2.0.14: optionalDependencies: - turbo-darwin-64: 2.0.12 - turbo-darwin-arm64: 2.0.12 - turbo-linux-64: 2.0.12 - turbo-linux-arm64: 2.0.12 - turbo-windows-64: 2.0.12 - turbo-windows-arm64: 2.0.12 + turbo-darwin-64: 2.0.14 + turbo-darwin-arm64: 2.0.14 + turbo-linux-64: 2.0.14 + turbo-linux-arm64: 2.0.14 + turbo-windows-64: 2.0.14 + turbo-windows-arm64: 2.0.14 type-check@0.4.0: dependencies: