diff --git a/.secrets.baseline b/.secrets.baseline index 616cd472bae..3b8c7a446a9 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -287,14 +287,14 @@ "filename": "press/api/tests/test_marketplace.py", "hashed_secret": "1e2a4c3be8ec693658961500ff918de4c188b4f1", "is_verified": false, - "line_number": 63 + "line_number": 61 }, { "type": "Hex High Entropy String", "filename": "press/api/tests/test_marketplace.py", "hashed_secret": "a6362a1031d1d2039364ea6b51694151bf388a40", "is_verified": false, - "line_number": 71 + "line_number": 69 } ], "press/auth.py": [ @@ -547,5 +547,5 @@ } ] }, - "generated_at": "2026-03-17T02:42:49Z" + "generated_at": "2026-04-15T16:58:31Z" } diff --git a/dashboard/package.json b/dashboard/package.json index 2dc4045f592..91ffa25cd21 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -11,8 +11,7 @@ "lint": "eslint src", "test:e2e": "playwright test", "test:e2e:headed": "playwright test --headed", - "test:e2e:report": "playwright show-report", - "postinstall": "patch-package" + "test:e2e:report": "playwright show-report" }, "dependencies": { "@codemirror/autocomplete": "^6.18.1", @@ -32,14 +31,13 @@ "echarts": "^5.4.3", "feather-icons": "^4.26.0", "frappe-charts": "2.0.0-rc22", - "frappe-ui": "0.1.238", + "frappe-ui": "0.1.277", "fuse.js": "6.6.2", "libarchive.js": "^1.3.0", "lodash": "^4.17.19", "luxon": "^1.22.0", "markdown-it": "^12.3.2", "papaparse": "^5.4.1", - "patch-package": "^8.0.1", "qrcode": "^1.5.4", "register-service-worker": "^1.6.2", "socket.io-client": "^4.5.1", @@ -53,14 +51,13 @@ "vue-sonner": "^1.2.5" }, "devDependencies": { - "@iconify/json": "^2.2.123", "@playwright/test": "^1.54.2", "@tailwindcss/forms": "^0.4.0", "@tailwindcss/postcss7-compat": "^2.0.2", "@tailwindcss/typography": "^0.5.1", "@vitejs/plugin-legacy": "^4.1.1", - "@vitejs/plugin-vue": "^5.0.3", - "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vitejs/plugin-vue": "^6.0.5", + "@vitejs/plugin-vue-jsx": "^5.1.5", "@vue/compiler-sfc": "^3.1.0", "@vue/eslint-config-prettier": "^6.0.0", "@vue/test-utils": "^2.0.0-rc.19", @@ -82,7 +79,7 @@ "tailwindcss": "^3.4", "typescript": "^5.4.3", "unplugin-vue-components": "^0.25.2", - "vite": "5.4.20", + "vite": "8.0.1", "vite-plugin-rewrite-all": "^1.0.1", "vitest": "^0.9.3", "vue-tsc": "^2.0.7", diff --git a/dashboard/patches/frappe-ui+0.1.238.patch b/dashboard/patches/frappe-ui+0.1.238.patch deleted file mode 100644 index 72e24752ed0..00000000000 --- a/dashboard/patches/frappe-ui+0.1.238.patch +++ /dev/null @@ -1,213 +0,0 @@ -diff --git a/node_modules/frappe-ui/package.json b/node_modules/frappe-ui/package.json -index 4a652de..826f0a0 100644 ---- a/node_modules/frappe-ui/package.json -+++ b/node_modules/frappe-ui/package.json -@@ -4,6 +4,7 @@ - "description": "A set of components and utilities for rapid UI development", - "type": "module", - "sideEffects": false, -+ "main": "./src/index.ts", - "scripts": { - "test": "vitest --run", - "type-check": "tsc --noEmit", -@@ -17,32 +18,6 @@ - "story:build": "histoire build && cp 404.html .histoire/dist", - "story:preview": "histoire preview" - }, -- "exports": { -- ".": { -- "import": "./src/index.ts", -- "types": "./src/index.ts" -- }, -- "./frappe": { -- "import": "./frappe/index.js" -- }, -- "./icons": { -- "import": "./icons/index.ts" -- }, -- "./tailwind": { -- "import": "./src/tailwind/preset.js", -- "default": "./src/tailwind/preset.js" -- }, -- "./vite": { -- "import": "./vite/index.js" -- }, -- "./style.css": { -- "import": "./src/style.css" -- }, -- "./tsconfig.base.json": { -- "default": "./tsconfig.base.json", -- "types": "./tsconfig.base.json" -- } -- }, - "files": [ - "frappe", - "src", -diff --git a/node_modules/frappe-ui/src/components/Combobox/Combobox.vue b/node_modules/frappe-ui/src/components/Combobox/Combobox.vue -index f594512..6b140c9 100644 ---- a/node_modules/frappe-ui/src/components/Combobox/Combobox.vue -+++ b/node_modules/frappe-ui/src/components/Combobox/Combobox.vue -@@ -35,6 +35,7 @@ import type { - const props = withDefaults(defineProps(), { - variant: 'subtle', - options: () => [], -+ allowCustomValue: false, - }) - const emit = defineEmits([ - 'update:modelValue', -@@ -234,15 +235,23 @@ const filteredOptions = computed(() => { - - const handleInputChange = (event: Event) => { - const target = event.target as HTMLInputElement -- searchTerm.value = target.value -- lastSearchTerm.value = target.value -+ const value = target.value -+ -+ searchTerm.value = value -+ lastSearchTerm.value = value - userHasTyped.value = true - - if (searchTerm.value === '') { - internalModelValue.value = null - emit('update:modelValue', null) -+ emit('update:selectedOption', null) -+ } else if (props.allowCustomValue) { -+ internalModelValue.value = value -+ emit('update:modelValue', value) -+ emit('update:selectedOption', null) - } -- emit('input', searchTerm.value) -+ -+ emit('input', value) - } - - const handleOpenChange = (open: boolean) => { -@@ -291,6 +300,23 @@ const variantClasses = computed(() => { - }[props.variant] - }) - -+const hasExactMatch = computed(() => { -+ if (!searchTerm.value) return false -+ return allOptionsFlat.value.some( -+ (opt) => getValue(opt) === searchTerm.value, -+ ) -+}) -+ -+const isFreeCustomValue = computed(() => { -+ if (!props.allowCustomValue) return false -+ -+ return ( -+ searchTerm.value && -+ !hasExactMatch.value && -+ filteredOptions.value.length === 0 -+ ) -+}) -+ - defineExpose({ - reset, - }) -@@ -344,9 +370,22 @@ defineExpose({ - :class="{ 'px-1.5 pt-1.5': !isGroup(filteredOptions[0]) }" - > - -- No results found for "{{ searchTerm }}" -+
-+ Custom value -+ "{{ searchTerm }}" -+
-+ -+
-+ No results found for "{{ searchTerm }}" -+
-
-