Skip to content

refactor(dashboard): lote 3 — onboarding, playground, api-manager, endpoint, tokens, api-endpoints on the CI UI Kit (KEA-7886) - #17411

Merged
diegosouzapw merged 17 commits into
feat/new-uikitfrom
feat/new-uikit-lote3
Oct 21, 2026
Merged

diegosouzapw merged 17 commits into
feat/new-uikitfrom
feat/new-uikit-lote3

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

⚠️ base-red inherited: #17219

Lote 3 — onboarding, playground, api-manager (+ [id]/access, routing), endpoint, tokens, api-endpoints on the CI UI Kit (KEA-7886, Task 33)

One commit per screen; adapters, globals.css, layout.tsx and packages/ui-kit/** untouched. Only the six lote
directories, src/shared/constants/iconMap.ts (41 lote names mapped to Lucide + waving_hand), en.json/pt-BR.json/vi.json
(6 new keys each; vi because its parity test pins every en key) and the realigned tests change.

Screen Spec Main changes Tests realigned Screenshots (_artifacts/)
/dashboard/tokens dashboard-tokens.md PageHeader compact; history in kit DataTableShell + Table; Input, Button, Badge, Alert, EmptyState — lote3-tokens-{light,dark,390}.png
/dashboard/api-manager/routing dashboard-api-manager-routing.md PageHeader compact — lote3-api-manager-routing-{light,dark,390}.png
/dashboard/onboarding dashboard-onboarding.md Card, Button, Input, kit Checkbox/RadioGroup+ChoiceCard, CodePreview, Alert, stepper with aria-current — lote3-onboarding-{light,dark,390}.png, -security-light
/dashboard/api-manager dashboard-api-manager.md key list div-grid → kit Table; PageHeader; Toggle switches; Alert; icon Buttons with labels; kit Checkbox indeterminate; RadioGroup catalog scope api-keys-flow.spec (banner locator) lote3-api-manager-{light,dark,390}.png, -create-dialog-light
/dashboard/api-manager/[id]/access dashboard-api-manager-id-access.md kit Tabs variant="underline"; 13 Toggles; Button+aria-pressed segmented controls; Input with labels api-manager-page-static.test, api-key-model-scope.spec (reached from api-manager)
/dashboard/endpoint dashboard-endpoint.md 3 tables → kit Table; 7 Selects; 4 notices → Alert; Checkbox; MCP/A2A stay in-page tabs; !important overrides removed — lote3-endpoint-{light,dark,390}.png
/dashboard/api-endpoints dashboard-api-endpoints.md (UI = endpoint/ApiEndpointsTab) method Badges, curl CodePreview, row Button with aria-expanded — lote3-api-endpoints-{light,dark,390}.png
/dashboard/playground dashboard-playground.md 3 own dialogs → Modal/ConfirmModal; export → CodePreview + kit Tabs; SegmentedControl studio tabs; kit Slider; Toggle; GFM tables → kit Table; 49 buttons → Button 7 playground unit tests (portal / kit DOM) lote3-playground-{light,dark,390}.png, -export-dark

Realignments keep the same assertion on the new DOM (portal queries, aria-pressed for selected state, kit button
classes, Lucide svg[data-icon] instead of ligature text). Nothing skipped, no assertion dropped.

P6 greps (lote directories)

material-symbols-outlined: 0 in all six dirs (before 7 / 45 / 92 / 61 / 0 / 0)
raw <table|button|input|select|textarea>: 0 (playground: 2 hits = code comments mentioning <select>)
role="dialog": 0 (before 3, playground)
dark: variants: 0 (before 1 / 35 / 94 / 45)
hardcoded semantic palette: 0

Validation (head 41d65be = fix round 2: vi keys + merge of feat/new-uikit 47c9f3f ⊃ lote 4)

Check Host Result
npm run typecheck:core local rc 0
icon-map-coverage local 3/3
i18n-vi-completeness local 5/5 (all tests in the file)
npm run check:ui-icu local PASS (933 678 messages, 67 catalogs)
npm run lint -- --concurrency=6 local, gate lock (at b99461f; fix round 2 only adds vi.json keys + the iconMap union) rc 0
npm run check:dashboard-typecheck local (at b99461f) rc 1 — inherited from lote 2b: providers/[id]/components/ConnectionsListPanel.tsx TS2322 baseline 3 → 4 (indeterminate on the Checkbox adapter); not a file of this PR
section node tests (26 files incl. vi completeness) local 257/257
section vitest (35 files) local 261/269 — 8 × 5 s timeouts under load (load avg ~20); re-run alone they pass (routing editor 6/6 with --testTimeout=30000)
npm run build .113 rc 0 (npm's own $?), "Turbopack build encountered 232 warnings" (= base)
e2e (7 §6 specs, start mode reusing that build) .113 26/26 passed (5.9 min)
smoke §8 local dev 7 routes × light/dark/390 + playground/tokens re-captured after the fixes: no overflow, no error boundary, no unstyled raw control, 0 Material spans
axe (§7) — covered by the wave checkpoint (controller ruling)

Screenshots: _artifacts/lote3-<tela>-{light,dark,390}.png (local paths on the devbox).

Deviations / pendências (10; details in the batch report)

  1. Kit Wizard / SetupProgressCard / SaveChangesBar lack i18n props — not adopted on onboarding. Hard-coded in
    wizard.tsx (only nextLabel/loadingLabel overridable): Step {n} of {m}, Save and close (aria-label +
    tooltip), Save and exit, Setup progress, Go back to / Go to , , completed, Back, Skip for now,
    Saving…; no footer/actions slot; onSkip required (Skip always rendered); single onNext cannot carry per-step
    actions. SetupProgressCard (only title/note): Expand/Minimize setup progress, Dismiss setup progress,
    {c} of {n} setup steps complete, Review/Complete {title}, Resume setup. SaveChangesBar: Unsaved changes
    (aria-label + status), Saving…. Needed: a labels object per component, hideSkip, a footer/actions slot.

  2. api-manager: no DataTableShell around the key list (the existing filter bar + kit Table); created key stays a
    readonly Input + copy (e2e pins input[readonly]).

  3. [id]/access: numeric Inputs for max sessions / throttle (0–300 000 ms) instead of Slider. (The endpoint
    categories now use CheckboxGroup + card Checkbox, fix round 1.)

  4. Kit Playground pattern not adopted. RequestWorkbench (only title/description/endpoint overridable)
    hard-codes Model, Live marketplace pricing…, Choose a model, Prompt, Run request/Running request; keeps
    model/prompt/parameters in internal useState (no value/onChange) and disables Run unless
    walletStatus === "connected". ParameterControls: fixed fields + English labels (no seed, stop, JSON mode,
    reasoning). LiveResponsePanel: Live response, Complete, Streaming, empty/loading/error copy, Try again,
    Assistant output. RequestResultMetrics: Status, Latency, Tokens saved, Cost saved. Needed: labels,
    controlled value/onValueChange, extensible parameter set, wallet-free mode. Lote 4's combos playground depends
    on this.

  5. CodePreview sr-only/error strings are English-only (Code copied to clipboard, Could not copy code…).

  6. Pre-existing hard-coded English left for the i18n wave (api-manager row chips, LimitsTab Add Limit/sec,
    BuildTab Tool result, ModelsTab Block … family, …).

  7. playground.closeExportModal is now unused (the export modal closes with the Modal's common.close); not removed
    (66-locale completeness rule).

  8. UsageLimitSettings enabledLabel/disabledLabel props are kept for callers but unused: the Enabled/Disabled text
    pills became kit Switches (Toggle).

  9. Pre-existing at 390 px: the playground config pane keeps its fixed w-72 and crushes the chat/compare column
    on phones (needs a stacked or Sheet layout).

  10. Pre-existing: emoji glyphs (🪙 token balance, ✨ improve-prompt) render as empty boxes where the system has no
    emoji font (headless/Linux); replace with Lucide icons or an emoji font.

Tokens history: kept the ledger table inside the kit DataTableShell (loading overlay owner); no filters/pagination
exist on this page, so the shell has no toolbar.

…below the kit field minimum (KEA-7886, lote 3)
…kit-lote3

# Conflicts:
#	src/shared/constants/iconMap.ts
…n CheckboxGroup, tokens shell, table scrollbar labels (KEA-7886, lote 3)
…kit-lote3

# Conflicts:
#	src/shared/constants/iconMap.ts
…kit-lote3

# Conflicts:
#	src/shared/constants/iconMap.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant