frappe-ui is heading to a 1.0.0 tag. The breaking changes land as separate PRs. This issue is the single place that tracks all of them for Pilot.
- Work top to bottom. Each section names the exact sites in this repo, with before/after.
- More sections get appended as more breaks land before the tag.
- Do not start until you bump the frappe-ui pin. Today it is
1.0.0-beta.34 in admin/frontend/dashboard/package.json.
- Full list of changes: migration guide.
| # |
Change |
PR |
Fails at build? |
| 1 |
Alert redesigned: theme="yellow" and variant removed, slots renamed (7 sites) |
frappe/frappe-ui#1005 |
No — silent |
1. Alert
PR: frappe/frappe-ui#1005
Alert was redesigned. Breaking changes:
theme="yellow" is removed — use theme="amber". The default theme is now gray.
- The
variant prop is removed. A description or a second action switches the layout to a banner.
- The unnamed
v-model (visibility) is removed. Alert is stateless — render it with v-if and hide it on @dismiss.
dismissible now defaults to false. Add dismissible to keep the close button.
#icon slot → #prefix. #footer slot → primaryAction / secondaryAction props or the #actions slot. #description stays.
- The theme shows a status icon on its own; pass
:icon="false" to hide it.
AlertAction is ButtonProps plus onClick({ dismiss }).
<!-- Before -->
<Alert v-model="showAlert" title="Payment failed" theme="yellow">
<template #footer>
<Button label="Retry" @click="retry" />
</template>
</Alert>
<!-- After -->
<Alert
v-if="showAlert"
title="Payment failed"
theme="amber"
dismissible
:primary-action="{ label: 'Retry', onClick: retry }"
@dismiss="showAlert = false"
/>
Pilot has 7 <Alert> sites, all in admin/frontend/dashboard/src/components. None uses variant, the unnamed v-model, or #icon, so nothing fails at build. Every site sets :dismissible="false", which is now the default — drop the prop everywhere. Every theme now auto-shows a status icon; add :icon="false" where you do not want one.
Line numbers are against develop at 04b15f5.
settings/Firewall.vue:6 and :30 — both use theme="yellow", which is removed. Change to theme="amber".
settings/Git.vue:6 — theme="blue". Only the icon and the dropped :dismissible="false" change.
settings/LLM.vue:6 — same as Git.vue.
settings/S3Bucket.vue:6 — same as Git.vue.
storage/BinlogPurgeAlert.vue:92 — the big one. No theme prop, so it moves to the new gray default; the !bg-surface-blue-1 class override targets the old DOM and needs a re-check. The #footer slot at :104 wraps a Button — move it to :primary-action="{ label: 'Purge binary logs', onClick: openDialog }" or the #actions slot.
tasks/TaskDebugDialog.vue:8 — theme="red". Gets an error icon; it sits inside a dialog, so check the layout or pass :icon="false".
Full before/after: migration guide.
frappe-ui is heading to a
1.0.0tag. The breaking changes land as separate PRs. This issue is the single place that tracks all of them for Pilot.1.0.0-beta.34inadmin/frontend/dashboard/package.json.Alertredesigned:theme="yellow"andvariantremoved, slots renamed (7 sites)1. Alert
PR: frappe/frappe-ui#1005
Alertwas redesigned. Breaking changes:theme="yellow"is removed — usetheme="amber". The default theme is nowgray.variantprop is removed. A description or a second action switches the layout to a banner.v-model(visibility) is removed.Alertis stateless — render it withv-ifand hide it on@dismiss.dismissiblenow defaults tofalse. Adddismissibleto keep the close button.#iconslot →#prefix.#footerslot →primaryAction/secondaryActionprops or the#actionsslot.#descriptionstays.:icon="false"to hide it.AlertActionisButtonPropsplusonClick({ dismiss }).Pilot has 7
<Alert>sites, all inadmin/frontend/dashboard/src/components. None usesvariant, the unnamedv-model, or#icon, so nothing fails at build. Every site sets:dismissible="false", which is now the default — drop the prop everywhere. Every theme now auto-shows a status icon; add:icon="false"where you do not want one.Line numbers are against
developat04b15f5.settings/Firewall.vue:6and:30— both usetheme="yellow", which is removed. Change totheme="amber".settings/Git.vue:6—theme="blue". Only the icon and the dropped:dismissible="false"change.settings/LLM.vue:6— same as Git.vue.settings/S3Bucket.vue:6— same as Git.vue.storage/BinlogPurgeAlert.vue:92— the big one. Nothemeprop, so it moves to the newgraydefault; the!bg-surface-blue-1class override targets the old DOM and needs a re-check. The#footerslot at:104wraps a Button — move it to:primary-action="{ label: 'Purge binary logs', onClick: openDialog }"or the#actionsslot.tasks/TaskDebugDialog.vue:8—theme="red". Gets an error icon; it sits inside a dialog, so check the layout or pass:icon="false".Full before/after: migration guide.