Commit Graph

11 Commits

Author SHA1 Message Date
uberwald 63d83e999a Update build path comment in scrying-pool.less
Changed comment to reflect new build output location.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 14:13:45 +02:00
uberwald 06cf740aa3 Fix: Move CSS to root styles/ folder for FoundryVTT compatibility
The issue: CSS was in dist/styles/ but FoundryVTT expects module CSS
at the root level or in a standard location.

Changes:
- Build CSS to styles/scrying-pool.css (root level) instead of dist/styles/
- Update module.json to reference styles/scrying-pool.css
- Update .gitignore to track styles/scrying-pool.css
- Update build script in package.json

This ensures FoundryVTT can find and load the CSS file properly in live sessions.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 14:12:44 +02:00
uberwald 9dc202053c Fix styling issues: dialog backgrounds, spacing tokens, and module category
- Added category 'Audio/Video' to module.json to fix 'Non répertorié' issue
- Created styles/tokens/_spacing.less with spacing tokens (xxs, xs, sm, md, lg, xl, 2xl)
- Added legacy aliases (--sp-space-xs, --sp-space-sm, --sp-space-m, etc.) for preset-import-export.less
- Added --sp-bg and --sp-surface-elevated tokens to _base.less
- Fixed _player-privacy-panel.less to use CSS custom properties instead of LESS variables
- Added background: var(--sp-surface) to all dialog root elements:
  - PlayerPrivacyPanel
  - PresetSaveDialog
  - PresetLoadDialog
  - DirectorsBoard
  - PresetImport/Export dialogs
- Added _spacing.less import to scrying-pool.less
- Rebuilt CSS (dist/styles/scrying-pool.css)

This fixes:
1. Transparent dialogs (now have proper background colors)
2. Missing spacing tokens (caused build errors)
3. Module category (now shows as 'Audio/Video' instead of 'Uncategorized')

All 900 unit tests passing.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 14:03:42 +02:00
uberwald 6d7a0b5fd7 Now manage to replace the Foundry native AV dock
CI / ci (push) Failing after 16s
2026-05-24 09:39:53 +02:00
uberwald c4a375f4e3 Story 4.2: Implement full AV replacement with WebRTC stream access
- Update FoundryAdapter to properly detect and expose WebRTC stream access
- Modify ScryingPoolStrip to create video elements with WebRTC streams
- Add video container to roster-strip.hbs template with conditional rendering
- Add CSS to hide Foundry's AV dock (#av and .camera-view)
- Add CSS styling for video containers and elements
- Fix unused variable in FoundryAdapter.buildWebRTCSurface
- Add comprehensive test script for stream access implementation

Architecture: Full replacement mode where module hides Foundry's AV dock
and creates its own video elements using game.webrtc.client.getMediaStreamForUser()

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-24 09:12:06 +02:00
uberwald 56eeb7cc83 Story 4.2 completed 2026-05-24 00:37:21 +02:00
uberwald fd0a7868f3 Story 4.1: Tasks 3-6 Complete - Director's Board Integration & Settings Menu
- Task 3: Extended FoundryAdapter with user flag access methods
  - Added getFlag(userId, scope, key) method
  - Added setFlag(userId, scope, key, value) method
  - Added getFlagModule(userId, key) convenience method
  - Added setFlagModule(userId, key, value) convenience method

- Task 4: Integrated Privacy Settings with Director's Board
  - Updated participant-card.hbs to show Reaction Cam badge
  - Modified boardUtils.js to pass playerPrivacyManager through context
  - Updated DirectorsBoard to accept and pass playerPrivacyManager
  - Added CSS styles for Reaction Cam badge (SP accent color)

- Task 5: Registered PlayerPrivacyPanel in module settings
  - Added settings menu registration in module.js Hooks.once('ready')
  - Available to all users (restricted: false)
  - Uses localized labels and hints

- Task 6: Added all localization strings
  - Added SCRYING_POOL.PrivacyPanel.* strings for panel UI
  - Added SCRYING_POOL.Settings.* strings for settings menu

- Updated story file with task completion status

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-23 21:29:58 +02:00
uberwald a1e8886fce Story 3.2 done 2026-05-23 18:23:48 +02:00
uberwald d175f92806 Complete Story 3.3: Preset Import & Export
Implements FR-19: Preset import/export as JSON

New Files:
- src/core/PresetImportExportManager.js - Core logic for export/import with merge/replace
- src/ui/gm/PresetExportDialog.js - Export dialog with file download
- src/ui/gm/PresetImportDialog.js - Import dialog with file picker, preview, merge/replace
- templates/preset-export.hbs - Export dialog template
- templates/preset-import.hbs - Import dialog template
- styles/components/_preset-import-export.less - Dialog styles
- tests/unit/core/PresetImportExportManager.test.js - 38 unit tests
- _bmad-output/implementation-artifacts/3-3-preset-import-and-export.md - Story file

Modified Files:
- src/ui/gm/DirectorsBoard.js - Added export/import button handlers
- templates/directors-board.hbs - Added Export/Import buttons to footer
- styles/scrying-pool.less - Added stylesheet import
- lang/en.json - Added localization strings for new UI
- _bmad-output/implementation-artifacts/sprint-status.yaml - Story status: review

Features:
- Export all presets from current scene as JSON file
- Import presets with merge (add new, skip duplicates) or replace (overwrite all) modes
- Preview of presets before import with validation status
- Confirmation dialog for replace mode to prevent data loss
- Comprehensive error handling and validation
- All ACs satisfied (AC-9 deferred for README docs)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-23 16:28:53 +02:00
uberwald 7918792f4e Fix Story 2.3 code review findings: remove duplicate ParticipantCard.js, fix lint in ScryingPoolStrip.js
- Delete src/ui/shared/ParticipantCard.js (duplicate of boardUtils.js with conflicting implementations)
- Delete tests/unit/ui/shared/ParticipantCard.test.js (tests for deleted file)
- Add directorsBoard to global declarations in ScryingPoolStrip.js to fix lint errors

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-23 11:31:01 +02:00
uberwald 110b295a7b CLose story 1.2 2026-05-21 23:08:34 +02:00