Commit Graph

14 Commits

Author SHA1 Message Date
89efc9b41d Add hot reload for development
Implement automatic rebuild and browser reload during development:

- File watcher monitors .go files for changes with configurable extensions
- Builder compiles Go source to WASM on file changes
- LiveReload WebSocket server notifies connected browsers to reload
- DevServer combines all components for easy development setup
- HTML injection adds reload script automatically

Usage:
  dev := host.NewDevServer("public", "index.html", ".", "public/app.wasm")
  dev.ListenAndServe(":8080")

Closes #9

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:34:16 +00:00
9642fd008e Remove internal package import from todo example
All checks were successful
CI / build (push) Successful in 27s
Replace direct internal/element usage with public ui package
components to ensure examples only use the public API:

- Add ui.RawCheckbox for plain checkbox without label wrapper
- Add ui.Span for span elements with text content
- Add View.TextDecoration modifier for strikethrough styling
- Update todo example to use these public components

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:29:57 +00:00
505fa0f84a Add todo list example
This example demonstrates Iris reactive patterns:
- Signal holding a slice/list of todos
- Adding and removing items dynamically
- Component composition (inputRow, todoList, todoItem)
- Input handling with TextInput and Enter key support
- Conditional rendering (empty state, strikethrough for completed)

Closes #5

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:29:57 +00:00
d3ed52e4a6 Remove accidentally committed binary
All checks were successful
CI / build (push) Successful in 28s
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:28:30 +00:00
f67347688b Add decrement button to counter example
Address review feedback to include a decrement button that
demonstrates reactive updates in both directions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:28:30 +00:00
7cd276a5e5 Add counter example demonstrating signals
Basic example showing:
- Creating a signal with NewSignal
- Reading value with Get()
- Writing value with Set()
- Button click handler
- Reactive text that updates when signal changes

Closes #4

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:28:30 +00:00
27f0154bc9 Add dashboard example showing realistic admin panel
All checks were successful
CI / build (push) Successful in 28s
This example demonstrates all key Iris features for internal tool teams:
- Multiple pages with client-side routing
- Auth-protected sections with route guards
- Reactive data display with signals
- Form inputs (text, checkbox, slider, select)
- Component composition with reusable layouts

Test credentials: admin/admin (full access) or user/user (limited access)

Closes #8

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:11:37 +00:00
a13e215e31 Add multi-page app example demonstrating navigation
All checks were successful
CI / build (pull_request) Successful in 27s
CI / build (push) Successful in 28s
Add a comprehensive example showing client-side routing:
- Router setup with multiple routes (/, /about, /users, /admin)
- Route parameters (/users/:id) with the NumericIdGuard
- Navigation using Link component and programmatic Navigate/Back
- Route guards with AuthGuard for protected admin page
- Browser history integration with back/forward support

Closes #6

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 17:01:47 +01:00
2db0628a89 Add host server setup guide
All checks were successful
CI / build (pull_request) Successful in 27s
CI / build (push) Successful in 27s
Documents the host package covering:
- Basic server setup with code example
- Directory structure for WASM apps
- Static file serving and SPA fallback
- WASM MIME type configuration
- Automatic gzip compression
- Development vs production considerations

Closes #3

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:50:55 +01:00
5aa1498ab7 Add hello world example
All checks were successful
CI / build (pull_request) Successful in 39s
CI / build (push) Successful in 27s
Minimal Iris application demonstrating:
- Signal creation with NewSignal
- Reactive text rendering with TextFromFunction
- Auto-incrementing counter to show reactivity

Closes #2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:44:59 +01:00
260f46e814 Fix README clarity issues from code review
All checks were successful
CI / build (pull_request) Successful in 27s
CI / build (push) Successful in 29s
- Add explicit mkdir -p public before wasm_exec.js copy
- Specify to save app code as main.go
- Specify to save server code as server.go

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:40:21 +01:00
46aa4cc502 Add README quickstart section
All checks were successful
CI / build (pull_request) Successful in 28s
Provides a complete getting-started guide covering prerequisites,
app creation, HTML host setup, build commands, and running the app.

Closes #1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 16:36:12 +01:00
1129f1b43d Fix CI and manifesto links
All checks were successful
CI / build (push) Successful in 40s
- Remove test step from CI (WASM-only code can't run native tests)
- Update manifesto links to use absolute Gitea URLs

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 19:39:15 +01:00
00d98879d3 Initial iris repository structure
Some checks failed
CI / build (push) Failing after 36s
WASM reactive UI framework for Go:
- reactive/ - Signal[T], Effect, Runtime
- ui/ - Button, Text, Input, View, Canvas, SVG components
- navigation/ - Router, guards, history management
- auth/ - OIDC client for WASM applications
- host/ - Static file server

Extracted from arcadia as open-source component.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 19:23:49 +01:00