10 Commits

Author SHA1 Message Date
Jonathan Miller 2fea58db47 feat: add local video mode with media picker and install script
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
- New "Local Video" hero mode with Joomla Media Manager file picker
- Install script creates images/heroes/ folder on install/update
- Updated showMuteToggle to show for both video and localvideo modes
- All language strings (en-US/en-GB, ini + sys.ini) updated with new
  keys: MODE_LOCALVIDEO, LOCAL_VIDEO_LABEL/DESC, CARD_DELAY, MUTE_TOGGLE

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 15:22:29 -05:00
Jonathan Miller 17b66b0210 feat: add card fade-in delay and video mute toggle (#39, #40)
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
- Card fade-in delay: configurable delay (0-5000ms) before the content
  card appears with a smooth slide-up animation. Set via cardDelay param.
- Mute toggle: optional button in bottom-right corner to unmute/mute
  video audio. Videos always start muted (browser autoplay requirement).
  Supports YouTube postMessage API, Vimeo postMessage, and native video.
- New manifest params: cardDelay (number), showMuteToggle (radio)
- Language strings added for both en-US and en-GB

Closes #39, closes #40
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 14:02:37 -05:00
Jonathan Miller 42c578fc7a refactor: move assets to media/ for proper Joomla WAM integration
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Joomla's addExtensionRegistryFile('mod_foo') resolves to
media/mod_foo/joomla.asset.json, not modules/mod_foo/. Move CSS, JS,
and joomla.asset.json to src/media/ and add <media> tag to manifest.

- src/css/ → src/media/css/
- src/js/ → src/media/js/
- src/joomla.asset.json → src/media/joomla.asset.json
- Manifest: replace <folder>css/js</folder> in <files> with <media> tag
- Entry point: restore addExtensionRegistryFile + usePreset

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-29 00:23:52 -05:00
Jonathan Miller 96e7ae65eb fix: use inline asset registration instead of preset registry
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
addExtensionRegistryFile fails during countModules() — Joomla renders
modules early during template parsing and the preset registry lookup
fails. Switch to registerAndUseStyle/registerAndUseScript which work
reliably in all contexts.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-29 00:20:15 -05:00
Jonathan Miller d738d75fad feat: add WYSIWYG content editor with card display on hero
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
- Add heroContent param with Joomla editor field for rich HTML input
- Add showCard toggle to wrap content in a styled card (white bg, shadow, rounded)
- Card CSS: semi-transparent white, 8px radius, centered, max 700px
- Remove old $module->content fallback — content now comes from params
- Language strings for en-GB and en-US (both .ini and .sys.ini)

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 22:55:54 -05:00
Jonathan Miller 2b49acefaa feat(params): default hero height to 60vh, clarify vh/px in description
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
- Change default from 400px to 60vh (viewport-relative is more responsive)
- Add hint placeholder showing "e.g. 60vh or 400px"
- Update description to explain both px and vh units

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 22:36:11 -05:00
Jonathan Miller e3d156bf2f refactor: align with Joomla 5 module conventions
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
- Rename css/template.css → css/mod_mokojoomhero.css
- Rename js/template.js → js/mod_mokojoomhero.js
- Update joomla.asset.json URIs to match new filenames
- Use $app (injected by Joomla) instead of Factory::getApplication()
- Remove unused Factory import
- Add proper scope annotations ($app, $module, $params)

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 17:13:32 -05:00
Jonathan Miller ae948e41a7 feat: smart video URL detection for YouTube, Vimeo, and local files
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
The video field now accepts any URL format and auto-detects the source:
- YouTube: watch, embed, shorts, youtu.be (extracts video ID)
- Vimeo: vimeo.com/ID, player.vimeo.com/video/ID
- Local/direct: relative paths or direct URLs render as <video>

Also fix videoFile filter from url to string to allow local paths.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 15:12:52 -05:00
Jonathan Miller ac5c8d18b2 feat: add YouTube video support for hero background
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Detect YouTube URLs (youtube.com/watch, youtu.be, youtube.com/embed)
and render a privacy-enhanced iframe embed instead of a <video> tag.
Local video files still work as before via the <video> element.

- Extract YouTube video ID via regex in entry point
- Render iframe with autoplay, muted, looped, no controls
- Use youtube-nocookie.com for privacy
- Add pointer-events: none to prevent interaction with video layer
- Update video field label/description to mention YouTube support

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-28 14:39:27 -05:00
Moko Consulting eec06b1875 chore: trigger update-server workflow for version suffix [skip bump]
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-28 14:02:40 -05:00