kawa
d2b6da297f
test(09-05): add tooltip hover behavior tests and helpTextPrefix rendering tests
...
- FieldRenderer: 4 new tests for hover show/hide, click-pin, click-unpin
- TextFieldMD3: 3 new tests for helpTextPrefix with helpText, without, and prefix-only
- Import fireEvent from @testing-library/react added to FieldRenderer.test.tsx
2026-04-01 11:20:24 +02:00
kawa
23617c0422
feat(09-05): add helpTextPrefix prop and fix tooltip placement + hover behavior
...
- TextFieldMD3: add helpTextPrefix prop rendered inline left of helpText
- Guard changed to (helpText || helpTextPrefix) so icon renders without helpText
- FieldRenderer: move tooltip icon from above field to inline with helpText via helpTextPrefix
- FieldRenderer: add hoverTooltip state; tooltip visible on mouseEnter, dismisses on mouseLeave
- FieldRenderer: click-to-unpin clears hoverTooltip to prevent sticky tooltip after dismiss
- PasswordField: same tooltip fix as FieldRenderer text-branch
- Select-branch also gains hover support
2026-04-01 11:19:17 +02:00
kawa and Claude Opus 4.6
29aa6b9e2f
docs(09-05): add tooltip fix plan and debug session
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 11:11:59 +02:00
kawa and Claude Opus 4.6
c848f7dd75
docs(09-05): diagnose tooltip gaps and create verified fix plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 11:10:58 +02:00
kawa and Claude Opus 4.6
788d90a904
fix(09): revise 09-05 plan based on checker feedback
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 11:09:17 +02:00
kawa and Claude Opus 4.6
f2586dbef9
docs(09): create gap closure plan for tooltip hover and icon placement
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 11:03:10 +02:00
kawa and Claude Opus 4.6
53678e6fb3
test(09): complete UAT - 6 passed, 1 issue
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 10:58:16 +02:00
kawa and Claude Opus 4.6
ba0a029366
docs(phase-09): complete phase execution — 12/12 must-haves verified
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 10:32:11 +02:00
kawa
dad829245a
docs(09-04): complete BackendSelectionStep TextFieldMD3 gap closure plan
...
- 09-04-SUMMARY.md: all 1 tasks documented, 179 tests green
- STATE.md: position advanced, session updated
- ROADMAP.md: Phase 9 marked 4/4 plans complete
2026-04-01 10:28:48 +02:00
kawa
123f24c57d
feat(09-04): replace plain Remote name input with TextFieldMD3
...
- Add import { TextFieldMD3 } from '../ui/TextFieldMD3'
- Replace label+input+error block with TextFieldMD3 component
- Pass registration={register('name')}, error={errors.name}, required
- Closes COMP-01 gap: all wizard text inputs now use TextFieldMD3 floating label
2026-04-01 10:27:23 +02:00
kawa and Claude Opus 4.6
2bcfe2ef4f
docs(09-04): gap closure plan for BackendSelectionStep TextFieldMD3 migration
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 10:21:54 +02:00
kawa and Claude Opus 4.6
107a259d19
docs(09): create gap closure plan for BackendSelectionStep TextFieldMD3 migration
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 10:19:48 +02:00
kawa and Claude Sonnet 4.6
7d5b3f7e73
docs(09-03): complete MD3 component integration plan — Phase 9 fully complete
...
- Create 09-03-SUMMARY.md: TextFieldMD3 integration, button hierarchy, card elevation
- Update STATE.md: Phase 9 complete, decisions captured, position advanced to Phase 10
- Update ROADMAP.md: Phase 9 marked complete (3/3 plans), progress table updated
- Update REQUIREMENTS.md: COMP-03 marked complete — all Phase 9 requirements satisfied
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 09:52:18 +02:00
kawa
d7a2cad7ea
feat(09-03): apply MD3 button styles and elevation across all wizard steps
...
- BackendCard: rounded-lg -> rounded-xl, added shadow/shadow-md elevation
- OutputBlock: pre rounded -> rounded-xl + shadow-sm; Copy/Download use MD3_BTN_OUTLINED small variant
- BackendSelectionStep: added explicit Next submit button with MD3_BTN_FILLED
- RemoteConfigStep: Back uses MD3_BTN_OUTLINED, Next uses MD3_BTN_FILLED
- DeploymentStep: Back uses MD3_BTN_OUTLINED, Next/Review uses MD3_BTN_FILLED
- ReviewStep: Back uses MD3_BTN_OUTLINED, Download All (ZIP) uses MD3_BTN_FILLED
- All 179 tests pass (zero regressions)
2026-04-01 09:29:52 +02:00
kawa
e560a6af84
feat(09-03): integrate TextFieldMD3 into FieldRenderer and PasswordField
...
- FieldRenderer text-branch now renders TextFieldMD3 with floating label
- PasswordField replaced with TextFieldMD3 + show/hide suffix toggle
- Tooltip button kept outside TextFieldMD3, rendered above it
- Removed placeholder prop from PasswordField (TextFieldMD3 uses placeholder=" " internally)
- All 179 tests pass (getByLabelText queries preserved via htmlFor/id pairing)
2026-04-01 09:27:44 +02:00
kawa and Claude Sonnet 4.6
7a02d483b3
docs(09-01): complete MD3 primitives plan — TextFieldMD3, button constants, DEBT-01 resolved
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 09:25:47 +02:00
kawa
532a994f6b
fix(09-01): resolve DEBT-01 aria-label inconsistency in FieldRenderer and PasswordField
...
- Add FieldRenderer.test.tsx: 4 tests verifying both branches use aria-label consistently
- Fix FieldRenderer.tsx text-branch: replace sr-only span with aria-label={} matching select-branch
- Fix PasswordField.tsx tooltip button: same sr-only -> aria-label fix
- Update RemoteConfigStep.test.tsx: add { selector: 'input' } to getByLabelText queries that
now conflict with tooltip button aria-labels (regression fix)
2026-04-01 09:24:14 +02:00
kawa
0c8403dc79
docs(09-02): complete StepIndicator MD3 rebuild plan
...
- Create 09-02-SUMMARY.md with execution details and decisions
- Update STATE.md position, decisions, session info
- Update ROADMAP.md phase 9 progress (1/3 plans complete)
- Mark COMP-04 complete in REQUIREMENTS.md
2026-04-01 09:20:29 +02:00
kawa
9441dcdae7
feat(09-01): create TextFieldMD3 component with floating label + MD3 button constants
...
- Add TextFieldMD3.tsx: outlined text field with CSS-only floating label via peer/:not(:placeholder-shown)
- Add TextFieldMD3.test.tsx: 9 tests covering htmlFor/id pairing, registration spread, error/helpText/suffix/required slots
- Add src/styles/md3-buttons.ts: MD3_BTN_FILLED, MD3_BTN_OUTLINED, MD3_BTN_TEXT class constants
2026-04-01 09:20:19 +02:00
kawa
b70484423e
feat(09-02): rebuild StepIndicator with MD3 circles and connectors
...
- Replace text breadcrumbs with numbered circles + connector lines
- Completed steps show checkmark, are clickable buttons with label text
- Active step highlighted with border-primary and bg-primary/10
- Future steps muted with border-outline and text-on-surface-container/40
- Connector lines filled bg-primary for completed, bg-outline for future
- All inline style={{}} props removed, no hardcoded color values
- handleStepClick logic preserved: SET_REMOTE_PARAMS({}) before SET_STEP(0)
- All 5 WIZD-03 tests pass without modification
2026-04-01 09:19:06 +02:00
kawa and Claude Opus 4.6
a6c2ec7292
docs(09-md3-components): create phase plan
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 09:14:15 +02:00
kawa and Claude Opus 4.6
80a26e395d
docs(phase-9): add research and validation strategy
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 09:07:15 +02:00
kawa
68fe57f585
docs(phase-09): research MD3 components phase
2026-04-01 09:05:56 +02:00
kawa and Claude Opus 4.6
66f7cf761a
docs(phase-08): complete phase execution — verification passed
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 05:27:22 +02:00
kawa and Claude Sonnet 4.6
0352900e53
docs(08-02): complete phase 8 — Task 3 approved, STATE and SUMMARY updated
...
- Mark Task 3 (human-verify checkpoint) as user-approved
- Update SUMMARY.md to reflect all 3 tasks complete
- Update STATE.md: Phase 8 complete, THEME-01/THEME-02 satisfied
- Progress: 50% (2 of 4 v1.2 phases complete)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 05:17:39 +02:00
kawa
18252cbad1
docs(08-02): complete component color migration plan
...
- 08-02-SUMMARY.md: documents mechanical migration of 63 hardcoded color classes to semantic MD3 tokens across 9 components
- STATE.md: updated decisions and session info
- ROADMAP.md: phase 8 marked complete (2/2 plans with summaries)
2026-04-01 05:11:49 +02:00
kawa
1ac32eadc5
feat(08-02): migrate wizard components to semantic MD3 token classes
...
- AzureAuthToggle: border-gray-300 -> border-outline, bg-blue-600/text-white -> bg-primary/text-on-primary, bg-white/text-gray-700/hover:bg-gray-50 -> bg-surface-container/text-on-surface-container/hover:bg-surface
- SftpAuthToggle: same tab/info-tooltip mapping as AzureAuthToggle + text-gray-700 -> text-on-surface-container
- DeploymentStep: Back button border-gray-300/hover:bg-gray-50 -> border-outline/hover:bg-surface; Next bg-blue-600 -> bg-primary/text-on-primary
- OutputBlock: text-gray-700 -> text-on-surface-container, border-gray-300 -> border-outline (x2), bg-gray-900/text-gray-100 -> bg-surface-variant/text-on-surface-variant
- RemoteConfigStep: Back/Next buttons same as DeploymentStep pattern
- ReviewStep: text-green-700/bg-green-50 -> text-success/bg-success/10, bg-yellow-50/border-yellow-300 -> bg-warning/10/border-warning, text-yellow-800/900 -> text-warning, Back/Download buttons semantic tokens
- FieldRenderer (fix): text branch label text-gray-700 -> text-on-surface-container, text branch tooltip bg-blue-50/border-blue-200 -> bg-primary/10/border-primary/30
2026-04-01 05:08:33 +02:00
kawa
4e30f2ee79
feat(08-02): migrate UI primitives to semantic MD3 token classes
...
- BackendCard: border-blue-600/bg-blue-50 -> border-primary/bg-primary/10, border-gray-200/bg-white -> border-outline/bg-surface-container, text-gray-900 -> text-on-surface, text-gray-500 -> text-on-surface-container/70
- FieldRenderer: text-gray-700 -> text-on-surface-container, text-red-500 -> text-error, text-blue-500/700 -> text-primary, bg-blue-50/border-blue-200 -> bg-primary/10/border-primary/30, border-red-500 -> border-error, focus:ring-red-300 -> focus:ring-error/50, border-gray-300 -> border-outline, focus:ring-blue-300 -> focus:ring-primary/50, text-gray-500 -> text-on-surface-container/70, text-red-600 -> text-error
- PasswordField: same mapping as FieldRenderer + text-gray-400/hover:text-gray-700 -> text-on-surface-container/50 hover:text-on-surface-container
2026-04-01 05:04:33 +02:00
kawa
01752a126d
docs(08-01): complete theme foundation plan 01
...
- SUMMARY with MD3 token system, ThemeToggle, FOUC prevention
- STATE updated: decisions, session, 97% progress
- ROADMAP phase 8 marked In Progress (1/2 plans)
- REQUIREMENTS THEME-01, THEME-02 marked complete
2026-04-01 04:51:55 +02:00
kawa
074dc33c86
feat(08-01): implement ThemeToggle component and wire into App.tsx
...
- Add ThemeToggle segmented control (Light/Dark/System) with DOM class toggle
- Use getStored() lazy init and applyTheme() for side-effect-free render
- Stub localStorage and matchMedia in tests for Node v25 compatibility
- Wire ThemeToggle into App.tsx header flex row next to h1
- Change App outer div to bg-surface, h1 to text-on-surface
- All 7 ThemeToggle unit tests passing; 166 total tests green
2026-04-01 04:49:56 +02:00
kawa
fa2c0d963f
test(08-01): add failing tests for ThemeToggle component
...
- Test renders three buttons: Light, Dark, System
- Test default state is System when localStorage is empty
- Test clicking Dark adds .dark class to documentElement
- Test clicking Light removes .dark class from documentElement
- Test clicking Dark writes to localStorage key r2b-theme
- Test active/inactive aria-pressed state
- Test group has aria-label="Theme"
2026-04-01 04:34:01 +02:00
kawa
602755276e
feat(08-01): define MD3 color tokens and flash prevention script
...
- Add @custom-variant dark directive for .dark class-based toggling
- Define 15 CSS custom property token pairs (light/dark) in @layer base
- Map all tokens to Tailwind utility classes via @theme with var() references
- Include warning/success tokens (amber + green) for ReviewStep coverage
- Add body transition with prefers-reduced-motion guard
- Add inline blocking script in index.html head to prevent FOUC
2026-04-01 04:33:31 +02:00
kawa and Claude Opus 4.6
2ea0a1faaf
fix(08): revise plans based on checker feedback
...
- 08-01 Task 2: change type="auto" tdd="true" to type="tdd" (schema consistency)
- 08-02 Task 2: fix inverted on-role tokens in ReviewStep migration
bg-on-success -> bg-success/10, bg-on-warning -> bg-warning/10
- 08-02 mapping comment: same fix for consistency
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 18:11:02 +02:00
kawa and Claude Opus 4.6
bee3bad93a
docs(08): create phase plan - 2 plans, 2 waves
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 18:07:29 +02:00
kawa
0ef71cdcab
docs(phase-8): add validation strategy
2026-03-31 18:01:58 +02:00
kawa and Claude Sonnet 4.6
abb8320d74
docs(08): research phase — Tailwind v4 @theme tokens, dark mode, FOUC prevention
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 18:00:35 +02:00
kawa and Claude Opus 4.6
03aca9c768
docs(state): record phase 8 context session
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 17:53:32 +02:00
kawa and Claude Opus 4.6
43246745e7
docs(08): capture phase context
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 17:53:23 +02:00
kawa and Claude Opus 4.6
9196d030cc
docs: create milestone v1.2 roadmap (4 phases) — 15 requirements mapped
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 17:42:16 +02:00
kawa and Claude Opus 4.6
edfbbef07f
docs: define milestone v1.2 requirements — 15 requirements across 5 categories
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 16:14:51 +02:00
kawa and Claude Opus 4.6
4d4b01d9b7
docs(v1.2): complete project research — stack, features, architecture, pitfalls, summary
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 15:34:46 +02:00
kawa and Claude Opus 4.6
4a5ca206db
docs: start milestone v1.2 UI Polish & Clarity
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 15:22:44 +02:00
kawa and Claude Opus 4.6
d8822e0e0b
chore: archive v1.1 milestone — 3 phases, 11 plans, 11/11 requirements shipped
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
v1.1
2026-03-31 15:11:28 +02:00
kawa and Claude Sonnet 4.6
1aae501ddf
docs(v1.1): create milestone audit — tech_debt, 11/11 requirements satisfied
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 15:04:12 +02:00
kawa and Claude Sonnet 4.6
cd3d31ee4c
docs(phase-06): update validation strategy — nyquist_compliant true
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 14:07:43 +02:00
kawa and Claude Sonnet 4.6
5700fef647
docs(phase-05): update validation strategy — nyquist_compliant true
...
All 8 tasks verified green: 44 tests pass, 0 TypeScript errors, 0 act() warnings.
No gaps found — stub VALIDATION.md updated to reflect actual execution state.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 14:05:36 +02:00
kawa and Claude Sonnet 4.6
e51b366c81
docs(phase-07): complete phase execution — VALID-01 and UX-01 verified
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 13:53:32 +02:00
kawa and Claude Sonnet 4.6
7e0d1e92fa
docs(07-02): complete UX-01 tooltip plan — human verify approved
...
- Updated SUMMARY.md to reflect human-verify approval and full plan completion
- STATE.md advanced: position, decisions, metrics, session recorded
- ROADMAP.md phase 7 marked complete (3/3 plans)
- UX-01 requirement satisfied
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 13:49:05 +02:00
kawa
7548c7b07b
docs(07-02): complete UX-01 tooltip plan — awaiting human verify checkpoint
...
- SUMMARY.md created for plan 07-02
- STATE.md updated with decisions and session info
- ROADMAP.md updated with phase 7 plan progress
2026-03-31 13:35:24 +02:00
kawa
7c10600d02
feat(07-02): wire AzureAuthToggle tooltipText + add SFTP auth-method tooltip
...
- AzureAuthToggle reads sas_url/key tooltipText from BACKEND_REGISTRY and passes to PasswordField
- SftpAuthToggle adds showAuthTip state with ⓘ button above segmented control
- All 159 tests pass including UX-01 tooltip toggle tests
2026-03-31 13:33:36 +02:00