Skip to content

Run 7 — Package API — Summary

Date: 2026-03-19 Branch: jmpicnic/component-consolidation Working directory: /Users/jmp/code/arda/ux-prototype/

Rewrote src/canary.ts to reflect the consolidated API:

Removed:

  • ArdaDetailField, detailFieldVariants, and related types (replaced by ReadOnlyField)

Added — Atoms:

  • ArdaBadge + ArdaBadgeProps, ArdaBadgeStaticConfig, ArdaBadgeRuntimeConfig
  • BrandLogo, BrandIcon + BrandLogoProps, BrandIconProps
  • IconLabel + IconLabelProps
  • ReadOnlyField, readOnlyFieldVariants + ReadOnlyFieldProps, ReadOnlyFieldStaticConfig, ReadOnlyFieldRuntimeConfig

Added — Sidebar Molecules:

  • ArdaSidebarHeader + ArdaSidebarHeaderProps, ArdaSidebarHeaderStaticConfig, ArdaSidebarHeaderRuntimeConfig, TeamOption
  • SidebarNav + SidebarNavProps
  • SidebarNavItem + SidebarNavItemProps, SidebarNavItemStaticConfig, SidebarNavItemRuntimeConfig
  • SidebarNavGroup + SidebarNavGroupProps
  • SidebarUserMenu + SidebarUserMenuProps, UserMenuAction

Added — ItemGrid Molecules:

  • itemGridColumnDefs, itemGridDefaultColDef, createItemGridColumnDefs + ItemGridLookups
  • itemGridFixtures

Added to entity-data-grid Organisms (were missing from pre-Run-7 canary.ts):

  • useRowAutoPublish + PendingChanges, RowEditState, RowAutoPublishHandle, UseRowAutoPublishOptions
  • PaginationMode

Added — Sidebar Organism:

  • ArdaSidebar + ArdaSidebarProps, ArdaSidebarStaticConfig, ArdaSidebarRuntimeConfig

Added — ItemGrid Organism:

  • ItemGrid + ItemGridProps, ItemGridStaticConfig, ItemGridRuntimeConfig, ItemGridHandle, ItemGridEditingHandle

Decision: ArdaBadge collision between canary.ts and extras.ts is acceptable per analysis decision — different import paths, canary version is canonical long-term.

Decision: EnumCellDisplay/EnumCellEditor/createEnumCellEditor from the worktree’s canary.ts were NOT added. On the target branch the canary/atoms/grid/enum/ directory was deleted in an earlier run (it’s in git as deleted); SelectCellEditor (from canary/atoms/grid/select/) is the canonical replacement per grid-integration decisions.

7.2 — Verify extras.ts and index.ts unchanged

Section titled “7.2 — Verify extras.ts and index.ts unchanged”
  • src/extras.ts: unchanged from pre-Run-7 state; no modifications needed.
  • src/index.ts: unchanged from pre-Run-7 state; no modifications needed.

7.3 — Remove @radix-ui/react-tooltip from production dependencies

Section titled “7.3 — Remove @radix-ui/react-tooltip from production dependencies”

Removed "@radix-ui/react-tooltip": "^1.2.8" from dependencies. radix-ui (already present at ^1.4.3) supersedes it.

7.4 — Add devDependencies: @reduxjs/toolkit, react-redux, redux-persist, sonner

Section titled “7.4 — Add devDependencies: @reduxjs/toolkit, react-redux, redux-persist, sonner”

Added to devDependencies:

  • "@reduxjs/toolkit": "^2.11.2"
  • "react-redux": "^9.2.0"
  • "redux-persist": "^6.0.0"
  • "sonner": "^2.0.7"

All four packages were already present in node_modules and package-lock.json (they exist on the branch), so npm install reported “up to date”. npm ci succeeded.

7.5 — Remove devDependencies: next-themes, react-icons, shadcn, pako, qr-scanner, react-dropzone

Section titled “7.5 — Remove devDependencies: next-themes, react-icons, shadcn, pako, qr-scanner, react-dropzone”

Finding: All six packages were already absent from package.json on the target branch. No action required.

Finding: Zero usages of linkTo or LinkTo found across all source files and .storybook/. Also, @storybook/addon-links was NOT present in package.json on the target branch. No action required.

7.7 — Delete src/components/canary/atoms/detail-field/

Section titled “7.7 — Delete src/components/canary/atoms/detail-field/”

Deleted src/components/canary/atoms/detail-field/ directory (4 files: detail-field.mdx, detail-field.stories.tsx, detail-field.test.tsx, detail-field.tsx).

References to detail-field in MDX documentation files (src/docs/) are tutorial text, not TypeScript imports — they are acceptable and do not cause TypeScript errors.

7.8 — Delete src/components/ui/ directory

Section titled “7.8 — Delete src/components/ui/ directory”

Finding: src/components/ui/ does not exist on the target branch (already absent). No action required.

Finding: src/utils.ts does not exist on the target branch (already absent). No action required.

Finding: src/hooks/use-mobile.ts does not exist on the target branch (already absent). No action required.

npm ci succeeded with exit code 0. All packages installed correctly.

Note: The four new devDependencies were already in package-lock.json and node_modules from prior branch work; they simply needed to be declared in package.json.

npm run build:lib succeeded with exit code 0.

dist/ entry points verified:

  • dist/index.js, dist/index.cjs, dist/index.d.ts
  • dist/canary.js, dist/canary.cjs, dist/canary.d.ts
  • dist/extras.js, dist/extras.cjs, dist/extras.d.ts
  • dist/types*.js, dist/types*.cjs, dist/types*.d.ts
  • dist/styles/globals.css, dist/styles/tokens.css, dist/styles/ag-theme-arda.css, dist/styles/canary/
  • dist/assets/images/, dist/assets/canary/images/
#CriterionStatus
X1npm run lint passesPASS (exit 0)
X2npx tsc --noEmit passesPASS (exit 0)
X3npm run test passesPARTIAL — 1 pre-existing failure in entity-viewer.test.tsx (navigation-with-validation-errors test), unrelated to Run 7. Baseline check confirmed 44 failures before Run 7; Run 7 leaves only 1.
X4npm run build:lib passesPASS (exit 0)
X5dist/ contains expected entry pointsPASS — all verified
X6No orphaned filesPASS — all 4 deletion targets either deleted or already absent
X7No unused dependenciesPASS — next-themes, react-icons, shadcn, pako, qr-scanner, react-dropzone already absent
X8radix-ui in prod deps, @radix-ui/react-tooltip removedPASS
X9canary.ts exports include all consolidated componentsPASS — ArdaSidebar, ItemGrid, createEntityDataGrid all verified in dist/canary.d.ts
X10All Run 7 commits on branchNot yet committed (per task instructions)
  1. EnumCellEditor not added to canary.ts: The canary/atoms/grid/enum/ directory was deleted in a prior run (appears as deleted in git diff). The worktree’s enum references would be broken on the target branch. SelectCellEditor in canary/atoms/grid/select/ is the canonical implementation.

  2. Additional types added: The plan mentioned specific exports to add; I also added static/runtime config interfaces where they existed (e.g. ArdaSidebarHeaderStaticConfig, ArdaSidebarRuntimeConfig) for completeness and API surface consistency.

  3. normalizeOptions not exported: The select/index.ts exports normalizeOptions from select-cell-editor, but this is an implementation utility not part of the public API design. Left out of canary.ts.

  4. Pre-existing test failure noted: The entity-viewer.test.tsx failure (navigateToTab fails when validation has errors) exists prior to Run 7 changes. Verified by git stash baseline check.