Cory Policht
← All references
REF · IP-OUI-11-5-REMOVE-MANTINE-SHIM · IP

Ip Oui 11 5 Remove Mantine Shim

source: ADP-UI/IPs/IP-OUI-11.5-Remove-Legacy-MantineTheme-Shim.mdscrubbed extract

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/ui consumers for remaining mantineTheme usage
  • 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