Commit Graph

25 Commits

Author SHA1 Message Date
yaroslav k
fddd97d926 character page: player card, prepared spells, attunements
- PlayerCard: read-only portrait, name, class, level, XP (the sidebar
  holds the editors for this data)
- PreparedSpells: growable slot list; a vacant slot has a free-text
  input and '+' to fill it, an occupied slot shows name/level/
  description and '×' to empty it; '+ слот' appends a vacant slot
- Attunements: three slots, free-text entry and per-slot clear
- rows are plain functions called from For's let(...) children —
  component tags are not allowed directly inside them (view macro)
- Field<...> conversions for the Subfield prop types, state-in-key
  keys so changed rows re-render (same convention as sidebar pips)
- SCSS: _character.scss with card, slot rows, buttons (mixins)
2026-08-16 12:43:52 +03:00
yaroslav k
1f3184baf6 undo: header buttons, shortcuts, wiring
- App provides HistoryHandle as context (both build modes; stacks stay
  empty on the server) and passes it to persist::init_hydrated
- persist: init_hydrated starts undo tracking after the localStorage
  load (first captured state = saved state, not mock); clear_all and
  apply_import call undo::before_replace so they are undoable
- header: Отменить/Вернуть buttons with disabled states driven by the
  reactive stack depths; Ctrl+Z / Ctrl+Shift+Z / Ctrl+Y via a window
  keydown listener that skips editable targets (browser owns those)
- SCSS: disabled control buttons dim out
2026-08-16 12:31:22 +03:00
yaroslav k
0c2eda7621 modal: in-app dialog for confirms and import errors
ModalState carries title/message/action as RwSignals; the action is
read at click time so a late confirm wins. Overlay click and Cancel
close; the confirm button runs the stored action. Edition-2024 note:
method calls on non-Copy captures move by value inside nested move
closures, so handlers touch state.open/state.action fields directly.
2026-08-16 11:28:19 +03:00
YK
6c7ba86018 item rendering, custom numput components 2025-09-23 15:44:06 +03:00
YK
38c6c7bb78 <Inventory/> component, basic markup + styles, balance (with <Numput>) 2025-09-20 11:08:03 +03:00
YK
b581802c32 styles 2025-09-20 11:06:55 +03:00
YK
0620207877 basic routing, <Nav> component 2025-09-20 11:06:39 +03:00
YK
5870ec2def css: change dst reset button appearance 2025-09-13 16:50:14 +03:00
YK
05563c18ec sidebar part 4: spell slot block 2025-09-13 16:28:44 +03:00
YK
ef5fb1dfa2 expand header 2025-09-13 16:28:33 +03:00
YK
260dbc6b27 css fix 2025-09-13 16:05:48 +03:00
YK
e956e986fb todo 2025-09-13 12:57:50 +03:00
YK
4e232e97e0 sidebar part 3: death save throws block 2025-09-13 12:48:01 +03:00
YK
fc13befcfb font experiments 2025-09-13 12:47:31 +03:00
YK
1c0c0a2b5f sidebar part 2: hit dice block 2025-09-13 11:53:59 +03:00
YK
5fa38ad67d remove unused mixin/font 2025-09-13 11:53:21 +03:00
YK
37f2232af1 sidebar part 1: character image, name, class, level, xp, hp 2025-09-12 11:44:55 +03:00
YK
474f3c33af button mixin 2025-09-12 10:20:17 +03:00
YK
51eab50cf5 split styles 2025-09-12 08:07:54 +03:00
YK
2de2bb9c42 theme fix 2025-09-12 07:59:25 +03:00
YK
ee0e2e3df9 css background radial gradient 2025-09-12 07:44:54 +03:00
YK
4d07d0b429 dark default theme 2025-09-12 07:36:10 +03:00
YK
b8e9ddcdaf feat: header with campaign image, name, session #, current date and (not yet functional nor properly styled) buttons 2025-09-12 07:23:09 +03:00
YK
b09dcb5fc1 csr version imported 2025-09-11 10:27:57 +03:00
YK
2a1fb81567 initial commit: ssr 2025-09-11 08:43:59 +03:00