diff --git a/internals/scripts/package.json b/internals/scripts/package.json index 849af418e1..d4ffc5a5f3 100644 --- a/internals/scripts/package.json +++ b/internals/scripts/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "zod": "^3.22.5" + "zod": "3.22.5" }, "devDependencies": { "@types/bun": "^1.1.2" diff --git a/packages/documentation/pages/usage/components/comment.vue b/packages/documentation/pages/usage/components/comment.vue index 8456b2c7c4..853a9db360 100644 --- a/packages/documentation/pages/usage/components/comment.vue +++ b/packages/documentation/pages/usage/components/comment.vue @@ -20,6 +20,7 @@ :allowInternal="settings.allowInternal" class="mb-block" :dataTest="settings.dataTest" + :forceInternal="settings.forceInternal" :isReadOnly="settings.isReadOnly" :tabIndex="settings.tabIndex" :userAvatar="currentUser.avatar" @@ -30,6 +31,8 @@ + ({ allowInternal: true, + forceInternal: false, dataTest: null, isReadOnly: false, locale: 'en-US', diff --git a/packages/documentation/pages/usage/components/table.vue b/packages/documentation/pages/usage/components/table.vue index 7f2f0199fc..ef76b3695f 100644 --- a/packages/documentation/pages/usage/components/table.vue +++ b/packages/documentation/pages/usage/components/table.vue @@ -146,7 +146,9 @@ Alignment would default to be `left`. It can be customized for common cases that When content should not be hidden, using horizontal scrolling is a better alternative. `isScrollable` will enable horizontal scrolling for the table. - +
+ +
```html @@ -768,6 +770,9 @@ You can also use slots instead of render props. [`slot="loading"`, `slot="empty" +
+ +
@@ -1151,6 +1156,12 @@ export default { { prop: 'date', label: 'Date' }, { prop: ADDRESS_DOT_LINE, label: 'Address' }, ], + columnsScrollable: [ + { prop: 'name', label: 'Name', width: '200px' }, + { prop: 'date', label: 'Date', width: '300px' }, + { prop: ADDRESS_DOT_LINE, label: 'Address', width: '500px' }, + { prop: 'gender', label: 'Gender', width: '100px' }, + ], columnsWidth: [ { prop: 'name', label: 'Name', width: '30%' }, { prop: 'date', label: 'Date', width: '20%' }, @@ -1158,9 +1169,22 @@ export default { ], rows2: [ { + address: { number: 119, line: 'No. 119, Grove St, Los Angeles' }, date: '2016-05-03', + gender: 'm', name: 'Tom', - address: { number: 119, line: 'No. 119, Grove St, Los Angeles' }, + }, + { + address: { number: 331, line: 'No. 119, Grove St, Los Angeles' }, + date: '2019-05-04', + gender: 'f', + name: 'Heinz Dieter', + }, + { + address: { number: 10, line: 'No. 119, Grove St, Los Angeles' }, + date: '2024-05-07', + gender: 'd', + name: 'Shabeer Mahood', }, ], emptyRows: [], diff --git a/packages/documentation/tsconfig.json b/packages/documentation/tsconfig.json index 5a757fac82..305e74b490 100644 --- a/packages/documentation/tsconfig.json +++ b/packages/documentation/tsconfig.json @@ -23,6 +23,7 @@ "exclude": ["node_modules"], "include": ["./**/*.ts", "./**/*.js", "./**/*.vue"], "vueCompilerOptions": { + "skipTemplateCodegen": true, "strictTemplates": true, "target": 2.7 } diff --git a/packages/kotti-ui/package.json b/packages/kotti-ui/package.json index 48073b31f7..e4720595e2 100644 --- a/packages/kotti-ui/package.json +++ b/packages/kotti-ui/package.json @@ -18,7 +18,7 @@ "normalize.css": "^8.0.1", "shortid": "^2.2.15", "tippy.js": "6.x", - "zod": "3.23.5" + "zod": "3.22.5" }, "description": "Kotti Vue Component UI", "devDependencies": { @@ -96,5 +96,5 @@ "style": "./dist/style.css", "type": "module", "types": "./dist/index.d.ts", - "version": "6.0.1" + "version": "6.1.1" } diff --git a/packages/kotti-ui/source/kotti-comment/KtComment.vue b/packages/kotti-ui/source/kotti-comment/KtComment.vue index f3407abe8b..fa95624b6d 100644 --- a/packages/kotti-ui/source/kotti-comment/KtComment.vue +++ b/packages/kotti-ui/source/kotti-comment/KtComment.vue @@ -25,7 +25,13 @@ /> (localIsInternal.value = !localIsInternal.value), + onToggleInternal: () => { + if (localIsInternal.value && props.allowInternal && props.forceInternal) + return + localIsInternal.value = !localIsInternal.value + }, } }, }) diff --git a/packages/kotti-ui/source/kotti-comment/types.ts b/packages/kotti-ui/source/kotti-comment/types.ts index 17b2fad5a1..d9c8bf8493 100644 --- a/packages/kotti-ui/source/kotti-comment/types.ts +++ b/packages/kotti-ui/source/kotti-comment/types.ts @@ -27,6 +27,7 @@ export module KottiComment { const sharedSchema = commentSchema.extend({ allowInternal: z.boolean().default(false), + forceInternal: z.boolean().default(false), dangerouslyOverrideParser: parseFunctionSchema.default(defaultParser), isReadOnly: z.boolean().default(false), postEscapeParser: parseFunctionSchema.default(defaultPostEscapeParser), @@ -169,6 +170,7 @@ export module KottiCommentInput { export const propsSchema = KottiComment.propsSchema .pick({ allowInternal: true, + forceInternal: true, dataTest: true, isInternal: true, tabIndex: true, diff --git a/packages/kotti-ui/source/kotti-i18n/hooks.ts b/packages/kotti-ui/source/kotti-i18n/hooks.ts index a137d8189f..90430e8d29 100644 --- a/packages/kotti-ui/source/kotti-i18n/hooks.ts +++ b/packages/kotti-ui/source/kotti-i18n/hooks.ts @@ -1,9 +1,4 @@ import elementLocale from 'element-ui/lib/locale/index.js' -import elementDe from 'element-ui/lib/locale/lang/de.js' -import elementEn from 'element-ui/lib/locale/lang/en.js' -import elementEs from 'element-ui/lib/locale/lang/es.js' -import elementFr from 'element-ui/lib/locale/lang/fr.js' -import elementJa from 'element-ui/lib/locale/lang/ja.js' import type { Ref, UnwrapRef } from 'vue' import { computed, inject, provide, reactive, watch } from 'vue' @@ -59,6 +54,37 @@ export const useTranslationNamespace = ( return computed(() => context.messages[namespace]) } +interface DefaultObject> { + default: DefaultObject | R +} + +/** + * HACK: This function works around a CJS/ESM/EsModule interop issue. + * + * The objects we import at `element-ui/lib/locale/lang/[a-z]{2}.js` are EsModules + * (exports.__esModule = true). Due to current javascript flavour shenanigans, + * the imported object that we need can be found at the root, at the `.default` key, + * or even at the `.default.default` key. + * To mitigate we iterate down the potential default chain until we arrive at the + * right position. + */ +const accessDefaultKey = >( + obj: DefaultObject, +): R => { + if (!('default' in obj)) return obj + + let current: DefaultObject | R = obj + + // Practically, this should terminate after at most 2 iterations. Make it 10 for good measure + for (let i = 0; i < 10; i++) { + current = current.default as DefaultObject | R + if (!('default' in current)) { + return current + } + } + throw new Error('accessDefaultKey: could not exhaust nested default keys') +} + /** * Provides the translation context to child components */ @@ -89,19 +115,26 @@ export const useI18nProvide = ({ */ watch( locale, - (newValue) => { - const elementUiTranslations = { - 'en-US': elementEn, - 'de-DE': elementDe, - 'es-ES': elementEs, - 'fr-FR': elementFr, - 'ja-JP': elementJa, - }[newValue] - - if ('default' in elementUiTranslations) - throw new Error('Detected Broken Build') - - elementLocale.use(elementUiTranslations) + async (newValue) => { + try { + const elementUiTranslations = await { + /* eslint-disable @typescript-eslint/naming-convention */ + 'en-US': () => import('element-ui/lib/locale/lang/en.js'), + 'de-DE': () => import('element-ui/lib/locale/lang/de.js'), + 'es-ES': () => import('element-ui/lib/locale/lang/es.js'), + 'fr-FR': () => import('element-ui/lib/locale/lang/fr.js'), + 'ja-JP': () => import('element-ui/lib/locale/lang/ja.js'), + /* eslint-enable @typescript-eslint/naming-convention */ + }[newValue]() + + const resolvedEsModuleInterop = accessDefaultKey(elementUiTranslations) + + elementLocale.use(resolvedEsModuleInterop) + } catch (error) { + // eslint-disable-next-line no-console + console.error(error) + throw error + } }, { immediate: true, flush: 'post' }, ) diff --git a/packages/kotti-ui/source/kotti-table/KtTable.vue b/packages/kotti-ui/source/kotti-table/KtTable.vue index eedd7cf560..a427f5993b 100644 --- a/packages/kotti-ui/source/kotti-table/KtTable.vue +++ b/packages/kotti-ui/source/kotti-table/KtTable.vue @@ -32,13 +32,11 @@ import TableHeader from './components/TableHeader.vue' import { KT_TABLE, KT_STORE, - KT_LAYOUT, KT_TABLE_STATE_PROVIDER, DEFAULT_DISABLE_ROW, } from './constants' import { KtTableColumn } from './KtTableColumn' import { TableStore } from './logic/store' -import { TableLayout } from './table-layout' import type { CreateElement, PropType } from 'vue' import type { KottiTable } from './types' @@ -53,7 +51,7 @@ export const INITIAL_TABLE_STORE_PROPS = [ 'sortable', 'sortedColumns', 'sortMultiple', -] +] as const export default { name: 'KtTable', @@ -69,11 +67,9 @@ export default { }, provide() { return { - [KT_TABLE]: this, + [KT_TABLE as symbol]: this, // @ts-expect-error store will exist at runtime [KT_STORE]: this.store, - // @ts-expect-error layout will exist at runtime - [KT_LAYOUT]: this.layout, } }, props: { @@ -166,10 +162,8 @@ export default { localStore = new TableStore(this, initialState) } - const layout = new TableLayout(this) return { localStore, - layout, } }, computed: { @@ -214,7 +208,14 @@ export default { return Boolean(this.$scopedSlots.actions || this.renderActions) }, _renderExpand() { - return (h: CreateElement, rowData: any) => { + return ( + h: CreateElement, + rowData: { + data: KottiTable.Row.Props + row: KottiTable.Row.Props + rowIndex: number + }, + ) => { if (this.renderExpand) return this.renderExpand(h, rowData) // @ts-expect-error $slots will exist at runtime diff --git a/packages/kotti-ui/source/kotti-table/KtTableColumn.ts b/packages/kotti-ui/source/kotti-table/KtTableColumn.ts index a451941019..4d9b5ab631 100644 --- a/packages/kotti-ui/source/kotti-table/KtTableColumn.ts +++ b/packages/kotti-ui/source/kotti-table/KtTableColumn.ts @@ -6,7 +6,6 @@ import { DEFAULT_RENDER_CELL, KT_TABLE, KT_STORE, - KT_LAYOUT, DEFAULT_RENDER_HEADER, } from './constants' import { KottiTable } from './types' @@ -99,8 +98,8 @@ export const KtTableColumn: any = { this.columnConfig = createColumn(this) }, mounted(): void { - const columnIndex = this[KT_TABLE].$children.indexOf(this) - this[KT_STORE].commit('insertColumn', { + const columnIndex = this[KT_TABLE as symbol].$children.indexOf(this) + this[KT_STORE as any].commit('insertColumn', { column: this.columnConfig, ...(columnIndex !== -1 ? { index: columnIndex } : {}), }) @@ -108,10 +107,10 @@ export const KtTableColumn: any = { destroyed(): void { if (!this.$parent) return this.columnConfig && - this[KT_STORE].commit('removeColumn', this.columnConfig) + this[KT_STORE as any].commit('removeColumn', this.columnConfig) }, render: (): null => null, - inject: { KT_TABLE, KT_STORE, KT_LAYOUT }, + inject: { KT_TABLE, KT_STORE }, } function createColumn(column: any = {}) { @@ -120,7 +119,7 @@ function createColumn(column: any = {}) { let columnId = column.id if (!columnId) { // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - columnId = `${_self[KT_TABLE].tableId}_column_${columnIdSeed}` + columnId = `${_self[KT_TABLE as symbol].tableId}_column_${columnIdSeed}` columnIdSeed++ } // eslint-disable-next-line no-param-reassign diff --git a/packages/kotti-ui/source/kotti-table/components/TableBody.ts b/packages/kotti-ui/source/kotti-table/components/TableBody.ts index ffdd1a4e65..9fb437f4c6 100644 --- a/packages/kotti-ui/source/kotti-table/components/TableBody.ts +++ b/packages/kotti-ui/source/kotti-table/components/TableBody.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import type { CreateElement } from 'vue' -import { KT_TABLE, KT_STORE, KT_LAYOUT } from '../constants' +import { computed, defineComponent, h, inject } from 'vue' +import { KT_TABLE, KT_STORE } from '../constants' import { TableBodyEmptyRow } from './TableBodyEmptyRow' import { TableBodyExpandRow } from './TableBodyExpandRow' @@ -8,61 +8,54 @@ import { TableBodyLoadingRow } from './TableBodyLoadingRow' import { TableRow } from './TableRow' // eslint-disable-next-line @typescript-eslint/naming-convention -export const TableBody: any = { +export const TableBody = defineComponent({ name: 'TableBody', components: { TableRow }, - inject: { KT_TABLE, KT_STORE, KT_LAYOUT }, - computed: { - rows(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_STORE].state.rows - }, - loading(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE].loading - }, - showEmptyText(): unknown { - return this.rows.length === 0 && !this.loading - }, - isExpandable(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE].isExpandable - }, - }, - methods: { - getRowKey(row: unknown): unknown { - // @ts-expect-error `this[KT_STORE]` seems to emulate a provide/inject pattern of sorts - return this[KT_STORE].get('getRowKey', row) - }, - }, - render(h: CreateElement) { - const { showEmptyText, loading, rows, isExpandable, getRowKey } = this - return h('tbody', {}, [ - showEmptyText && h(TableBodyEmptyRow), - ...(loading - ? [h(TableBodyLoadingRow)] - : rows.flatMap((row: any, rowIndex: number) => { - const key = getRowKey(row) || rowIndex + setup() { + const tableState = inject(KT_TABLE) + const tableStore = inject(KT_STORE) + + if (!tableState || !tableStore) + throw new Error( + 'TableRowCell: Component was used without providing the right contexts', + ) + + const rows = computed(() => tableStore.state.rows) + const loading = computed(() => tableState.loading) + const isExpandable = computed(() => tableState.isExpandable) + const showEmptyText = computed( + () => rows.value.length === 0 && !loading.value, + ) + + const getRowKey = (row: unknown) => tableStore.get('getRowKey', row) + + return () => + h('tbody', {}, [ + showEmptyText.value && h(TableBodyEmptyRow), + ...(loading.value + ? [h(TableBodyLoadingRow)] + : rows.value.flatMap((row: any, rowIndex: number) => { + const key = getRowKey(row) || rowIndex - return [ - h(TableRow, { - key, - props: { - row, - rowIndex, - }, - }), - isExpandable && - h(TableBodyExpandRow, { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - key: `${key}-expansion`, + return [ + h(TableRow, { + key, props: { row, rowIndex, + rowKey: key, }, }), - ] - })), - ]) + isExpandable.value && + h(TableBodyExpandRow, { + key: `${key}-expansion`, + props: { + row, + rowIndex, + }, + }), + ] + })), + ]) }, -} +}) diff --git a/packages/kotti-ui/source/kotti-table/components/TableBodyEmptyRow.ts b/packages/kotti-ui/source/kotti-table/components/TableBodyEmptyRow.ts index b1779bb618..b8f56e5938 100644 --- a/packages/kotti-ui/source/kotti-table/components/TableBodyEmptyRow.ts +++ b/packages/kotti-ui/source/kotti-table/components/TableBodyEmptyRow.ts @@ -1,32 +1,30 @@ -import type { CreateElement, VNode } from 'vue' -import { KT_TABLE, KT_STORE, KT_LAYOUT } from '../constants' +import { computed, defineComponent, h, inject } from 'vue' +import { KT_TABLE } from '../constants' // eslint-disable-next-line @typescript-eslint/naming-convention -export const TableBodyEmptyRow = { +export const TableBodyEmptyRow = defineComponent({ name: 'TableBodyEmptyRow', - inject: { KT_TABLE, KT_STORE, KT_LAYOUT }, - render(h: CreateElement): VNode { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const { colSpan, render } = this as any - return h('tr', {}, [ - h( - 'td', - { - domProps: { colSpan }, - class: 'kt-table__no-row', - }, - [h('span', { class: 'kt-table__empty-text' }, [render(h)])], - ), - ]) - }, - computed: { - colSpan(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE].colSpan - }, - render(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE]._renderEmpty - }, + setup() { + const tableState = inject(KT_TABLE) + + if (!tableState) + throw new Error( + 'TableRowCell: Component was used without providing the right contexts', + ) + + const colSpan = computed(() => tableState.colSpan) + const render = computed(() => tableState._renderEmpty) + + return () => + h('tr', {}, [ + h( + 'td', + { + domProps: { colSpan: colSpan.value }, + class: 'kt-table__no-row', + }, + [h('span', { class: 'kt-table__empty-text' }, [render.value(h)])], + ), + ]) }, -} +}) diff --git a/packages/kotti-ui/source/kotti-table/components/TableBodyExpandRow.ts b/packages/kotti-ui/source/kotti-table/components/TableBodyExpandRow.ts index 2745293de8..7e8820dd38 100644 --- a/packages/kotti-ui/source/kotti-table/components/TableBodyExpandRow.ts +++ b/packages/kotti-ui/source/kotti-table/components/TableBodyExpandRow.ts @@ -1,43 +1,50 @@ -/* eslint-disable @typescript-eslint/naming-convention */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import type { CreateElement, VNode } from 'vue' -import { KT_TABLE, KT_STORE, KT_LAYOUT } from '../constants' +import { computed, defineComponent, h, inject, type PropType } from 'vue' +import { KT_TABLE, KT_STORE } from '../constants' +import type { KottiTable } from '../types' -export const TableBodyExpandRow: any = { +// eslint-disable-next-line @typescript-eslint/naming-convention +export const TableBodyExpandRow = defineComponent({ name: 'TableBodyExpandRow', props: { - row: Object, - rowIndex: Number, + row: { + type: Object as PropType, + required: true, + }, + rowIndex: { + type: Number, + required: true, + }, }, - inject: { KT_TABLE, KT_STORE, KT_LAYOUT }, - render(h: CreateElement): VNode { - const { isExpanded, row, rowIndex, colSpan, renderExpand } = this - return ( - isExpanded && + setup(props) { + const tableState = inject(KT_TABLE) + const tableStore = inject(KT_STORE) + + if (!tableState || !tableStore) + throw new Error( + 'TableRowCell: Component was used without providing the right contexts', + ) + + const colSpan = computed(() => tableState.colSpan) + const isExpanded = computed(() => tableStore.get('isExpanded', props.row)) + const render = computed(() => tableState._renderExpand) + + return () => + isExpanded.value && h('tr', {}, [ h( 'td', { - attrs: { colSpan }, + attrs: { colSpan: colSpan.value }, class: 'kt-table__expanded-cell', }, - [renderExpand?.(h, { row, data: row, rowIndex })], + [ + render.value(h, { + row: props.row, + data: props.row, + rowIndex: props.rowIndex, + }), + ], ), ]) - ) - }, - computed: { - colSpan(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE].colSpan - }, - isExpanded(): unknown { - // @ts-expect-error `this[KT_STORE]` seems to emulate a provide/inject pattern of sorts - return this[KT_STORE].get('isExpanded', this.row) - }, - renderExpand(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE]._renderExpand - }, }, -} +}) diff --git a/packages/kotti-ui/source/kotti-table/components/TableBodyLoadingRow.ts b/packages/kotti-ui/source/kotti-table/components/TableBodyLoadingRow.ts index ca80b4db21..182f554b61 100644 --- a/packages/kotti-ui/source/kotti-table/components/TableBodyLoadingRow.ts +++ b/packages/kotti-ui/source/kotti-table/components/TableBodyLoadingRow.ts @@ -1,33 +1,31 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import type { CreateElement } from 'vue' -import { KT_TABLE, KT_STORE, KT_LAYOUT } from '../constants' +import { computed, defineComponent, h, inject } from 'vue' +import { KT_TABLE } from '../constants' // eslint-disable-next-line @typescript-eslint/naming-convention -export const TableBodyLoadingRow: any = { +export const TableBodyLoadingRow: any = defineComponent({ name: 'TableBodyLoadingRow', - inject: { KT_TABLE, KT_STORE, KT_LAYOUT }, - computed: { - colSpan(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE].colSpan - }, - render(): unknown { - // @ts-expect-error `this[KT_TABLE]` seems to emulate a provide/inject pattern of sorts - return this[KT_TABLE]._renderLoading - }, - }, - render(h: CreateElement) { - const { colSpan, render } = this + setup() { + const tableState = inject(KT_TABLE) + + if (!tableState) + throw new Error( + 'TableRowCell: Component was used without providing the right contexts', + ) + + const colSpan = computed(() => tableState.colSpan) + const render = computed(() => tableState._renderLoading) - return h('tr', {}, [ - h( - 'td', - { - attrs: { colSpan }, - class: 'kt-table__loader', - }, - [render(h)], - ), - ]) + return () => + h('tr', {}, [ + h( + 'td', + { + attrs: { colSpan: colSpan.value }, + class: 'kt-table__loader', + }, + [render.value(h)], + ), + ]) }, -} +}) diff --git a/packages/kotti-ui/source/kotti-table/components/TableHeader.vue b/packages/kotti-ui/source/kotti-table/components/TableHeader.vue index f4c082a7bd..c64a8da139 100644 --- a/packages/kotti-ui/source/kotti-table/components/TableHeader.vue +++ b/packages/kotti-ui/source/kotti-table/components/TableHeader.vue @@ -3,7 +3,7 @@ -
+
-
+
- -
-
-
- triangle_up - triangle_down +
+ + triangle_up + + + triangle_down +
@@ -60,134 +47,105 @@ diff --git a/packages/yoco/package.json b/packages/yoco/package.json index 9792492a3e..7a7c9831d6 100644 --- a/packages/yoco/package.json +++ b/packages/yoco/package.json @@ -15,7 +15,7 @@ } ], "dependencies": { - "zod": "3.23.5" + "zod": "3.22.5" }, "description": "3YOURMIND Icon Font", "devDependencies": { diff --git a/tsconfig.json b/tsconfig.json index b95173aae4..4d59a857d0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "strict": true }, "vueCompilerOptions": { + "skipTemplateCodegen": true, "strictTemplates": true, "target": 2.7 } diff --git a/yarn.lock b/yarn.lock index e39735fb4a..0dcd0668f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16056,17 +16056,12 @@ zod-validation-error@^3.0.3: resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.2.0.tgz#df2ef6a8531d959324990599fb58206ca9479093" integrity sha512-cYlPR6zuyrgmu2wRTdumEAJGuwI7eHVHGT+VyneAQxmRAKtGRL1/7pjz4wfLhz4J05f5qoSZc3rGacswgyTjjw== -zod@3.23.5: - version "3.23.5" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.5.tgz#c7b7617d017d4a2f21852f533258d26a9a5ae09f" - integrity sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA== +zod@3.22.5: + version "3.22.5" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.5.tgz#b9b09db03f6700b0d0b75bf0dbf0c5fc46155220" + integrity sha512-HqnGsCdVZ2xc0qWPLdO25WnseXThh0kEYKIdV5F/hTHO75hNZFp8thxSeHhiPrHZKrFTo1SOgkAj9po5bexZlw== zod@^3.22.4: version "3.23.6" resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.6.tgz#c08a977e2255dab1fdba933651584a05fcbf19e1" integrity sha512-RTHJlZhsRbuA8Hmp/iNL7jnfc4nZishjsanDAfEY1QpDQZCahUp3xDzl+zfweE9BklxMUcgBgS1b7Lvie/ZVwA== - -zod@^3.22.5: - version "3.23.8" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" - integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==