Scrubbed extract of
ADP-UI/IPs/IP-OUI-11.5-Remove-Legacy-MantineTheme-Shim.md— cited by the Chronicle (06-extraction-and-divergence). Redactions: phone / service detail / secrets / clearance / personal / internal hosts.
type: implementation-plan category: Work project: ADP-UI epic: null priority: Medium status: backlog created: 2026-07-28 effort: null precedence: [] parallel_group: null review-profile: standard model: null tokens: 0 tags: [implementation-plan, adp-ui, bug, mantine-migration, console-error]
IP-OUI-11.5: Fix “Cannot convert a Symbol value to a string” from @adp/ui’s legacy mantineTheme shim
Mission
Remove or repair @adp/ui’s legacy mantineTheme Proxy shim, which throws an uncaught ‘Cannot convert a Symbol value to a string’ pageerror on every consuming app’s page load when something in the render path probes .$$typeof. The Mantine→shadcn migration it was kept for is complete, so deletion is the likely answer once consumers are checked.
References
- Origin:
Tasks/Work/2026-07-28-fix-adp-ui-mantine-theme-shim-symbol-error.md— captured via vault-pipeline 2026-07-29
Execution Phases
Phases are the source note’s own sections, preserved verbatim below:
## Description / ## Context (what and why), ## Scope or ## Checklist
(the ordered work), and ## Acceptance Criteria / ## Exit Criteria (the gate).
Work them in that order.
Fix “Cannot convert a Symbol value to a string” from @adp/ui’s legacy mantineTheme shim
Description
Discovered as a side finding while diagnosing an unrelated blank-screen bug
in project-hub-ui (see PR #9). On every project-hub-ui page load, the
browser console throws:
[warning] [adp-ui] mantineTheme.$$typeof access is deprecated. Use CSS variables or ThemeProvider.
[pageerror] Cannot convert a Symbol value to a string
Source: @adp/ui’s theme-provider.js
(C:\Users\coryp\Developer\adp-ui\src\theme\theme-provider.ts /
built to node_modules/@adp/ui/dist/theme/theme-provider.js) exports a
mantineTheme Proxy stub kept for backward compatibility during the
Mantine-to-shadcn migration:
export const mantineTheme = new Proxy(
{},
{
get(_target, prop) {
const proc = globalThis.process;
if (proc?.env?.NODE_ENV !== 'production') {
console.warn(
`[adp-ui] mantineTheme.${prop} access is deprecated. Use CSS variables or ThemeProvider.`
);
}
if (
prop === 'colors' ||
prop === 'components' ||
prop === 'headings' ||
prop === 'spacing'
) {
return {};
}
return undefined;
},
}
);
Something in the render path accesses mantineTheme.$$typeof (React or a
library doing an object-type check) and then tries to coerce the resulting
Symbol/undefined to a string, throwing. Did not appear to block
rendering in this session’s testing, but it’s a real uncaught pageerror on
every load and worth cleaning up now that the Mantine→shadcn migration
(#8, merged) is complete elsewhere in the consuming apps.
Acceptance criteria: either delete the mantineTheme legacy shim
entirely (if no consumer still needs it — check project-hub-ui and other
@adp/ui consumers for any remaining mantineTheme imports first) or fix
whatever code path accesses .$$typeof on it so the Proxy doesn’t get
Symbol-coerced. Confirm the console pageerror is gone in a consuming app
(e.g. project-hub-ui) after the fix.
Checklist
- Search
adp-ui,project-hub-ui, and other@adp/uiconsumers for remainingmantineThemeusage - Decide: delete the shim, or fix the
$$typeof/Symbol coercion path - Ship a patch/minor release of
@adp/ui - Verify the console pageerror is gone in a consuming app