@@ -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==