4 Commits

Author SHA1 Message Date
7bc06097b0 feat: add VideoPlayer widget with shared AVPlayer via Store
- New VideoPlayerControl.swift wrapping AVKit VideoPlayer
- Prefers shared AVPlayer from Store (e.g. PlayerBridge injection)
- Falls back to options.url for standalone use
- Schema.swift: add autoplay option for VideoPlayer
- ControlRenderer: register VideoPlayer widget type
- Add .gitignore to exclude .build/
2026-06-22 09:52:27 +08:00
c72a018764 fix: ControlSchema tolerate missing options field (Filler etc) 2026-06-21 23:18:53 +08:00
Hermes Agent
5ba2ae163b feat: ControlRenderer checks widget registry for custom widgets
Added registry lookup at top of renderWidget() before hardcoded switch.
Custom widgets registered via engine.registerWidget(type:factory) are
now rendered by the factory closure, enabling app-level extensions.
2026-06-21 17:48:06 +08:00
Hermes Agent
36967370fd SwiftBricks: Bricks JSON UI framework native Swift/SwiftUI implementation
- Core: Schema (Codable), Store, EventBus, RPC, Engine, I18n
- Controls: Text, Title1-6, Label, Input, Textarea, Number, Date, Button, Select
  VBox, HBox, ScrollPanel, DynamicColumn, Tabular, Form, InlineForm,
  TabView, Menu, PopupWindow, Html, Image, UrlWidget
- Renderer: BricksView (main entry), ControlRenderer (recursive dispatch)
- 30+ widget types, 9 bind actiontypes
- Form validation (required/minlength/maxlength/min/max/email/number/pattern)
- i18n with multi-language JSON files
- 18 tests covering schema parsing, store, i18n, events
2026-06-21 12:12:03 +08:00