chore: prepare to use 'main' branch again #46

Merged
Athemis merged 237 commits from v13-appv2 into main 2025-12-15 13:57:25 +00:00
Owner

Development for FoundryVTT v13 and port to ApplicationV2 lived in v13-appv2 branch since this has been stabilized, merge into main and use this as main branch again.

Development for FoundryVTT v13 and port to ApplicationV2 lived in `v13-appv2` branch since this has been stabilized, merge into `main` and use this as main branch again.
Convert DS4ActorSheet, DS4CharacterActorSheet, and DS4CreatureActorSheet
from ApplicationV1 to ApplicationV2 architecture. Update all templates
to use data-action attributes. Implement manual tab system and preserve
all existing functionality including item management, effects, and
rolling system.

BREAKING CHANGE: Requires FoundryVTT ApplicationV2 system
Convert DialogWithListeners and check-factory.js from deprecated Dialog
V1 to DialogV2. Replace jQuery with native DOM methods and update button
format. Fixes all remaining V1 Application framework deprecation
warnings.
Convert DS4ItemSheet and all item sheet templates from ApplicationV1 to
ItemSheetV2. Add V2 action handlers, tab navigation, and form
processing. Update effect management to use DialogV2. Preserve all
functionality including tab state and override handling.
Port remaining DS4ItemSheet and DS4ActiveEffectConfig to ApplicationV2.
- Remove jQuery dependency from render hooks - Update
selectTargetInputOnFocus to use modern DOM methods - Remove legacy appv1
sheet unregistration calls - Eliminate all remaining V1 compatibility
code
- Add editImage action to actor sheet actions - Use
foundry.applications.apps.FilePicker for V2 compatibility - Enable
portrait editing via click action in actor headers

Restores portrait editing functionality using proper V2 patterns.
Use CSS filters and light-dark() function for theme-adaptive icons and
text styling with proper contrast in both light and dark modes.
- Convert _onEditImage from instance to static method
animations
Apply the same brightness/invert filter used for combat values to
ds4-embedded-document-list__image class to ensure proper visibility of
combat value icons in dark theme.
duplication
needs to fit 5+ digits
Stamp for content headings
- Remove duplicate action handlers (edititem, deleteitem, createitem, etc.) from DS4ActorSheet and DS4ItemSheet
- Fix editImage method reference from static to prototype in DS4ActorSheet
- Add capitalize helper to handlebars-helpers.ts for dynamic action name generation
- Update control-button-group.hbs and add-button.hbs templates to use concat and capitalize helpers
- Ensure consistent camelCase naming for all action handlers (editItem, deleteItem, createItem, etc.)

This resolves action handler conflicts and improves maintainability by using dynamic template generation
instead of hardcoded conditional logic.
- Add DS4.ActorSheet localization key ("Aktorbogen" / "Actor Sheet")
- Add DS4.ItemSheet localization key ("Itembogen" / "Item Sheet")

These keys are used in the get title() methods of DS4ActorSheet and DS4ItemSheet
to display properly localized sheet window titles instead of showing the raw
localization key strings.

Both keys are placed logically near other Actor/Item-related localization entries
for consistency.
- Fix item sheet effects template to use enrichedEffects instead of data.effects
- Ensures effects are properly displayed in the item sheet effects tab
- Aligns with actor sheet implementation for consistency

The template was referencing data.effects but the context preparation creates
enrichedEffects array with additional metadata (id, uuid, sourceName).
- Remove excessive blank lines (triple+ newlines reduced to double)
- Fix EditorConfig indent_size from 4 to 2 spaces to match Prettier
- Ensure consistent whitespace formatting across JavaScript/TypeScript files
- Clean up formatting in templates (HBS files)

Files affected:
- src/apps/actor/base-sheet.js: Remove 6 instances of triple+ blank lines
- src/apps/item-sheet.js: Remove 4 instances of triple+ blank lines
- src/apps/ruler/token-ruler.js: Remove 1 instance of triple+ blank lines
- src/hooks/hooks.ts: Remove 1 instance of triple+ blank lines
- templates/sheets/actor/*.hbs: Remove excessive blank lines
- .editorconfig: Fix indent_size to match Prettier tabWidth (2 spaces)
- Remove unused _dialog parameter from weapon attack type selection callback
- Resolves ESLint error: '_dialog' is defined but never used
- Maintains functionality while improving code quality

This fixes the npm run lint:fix error and ensures clean ESLint compliance.
- Remove custom tab implementation in favor of official ApplicationV2 tabs
- Implement ApplicationTab typedef structure for Actor and Item sheets
- Add memory-safe event listener management with proper cleanup
- Update all sheet templates to use standard Foundry tab structure
- Add template safety checks to prevent undefined access errors
- Optimize performance with DOM updates instead of full re-renders
- Maintain backward CSS compatibility during transition
- Add dynamic tab configuration based on item types

Key improvements:
- ~200 lines of custom tab code removed
- Memory leak prevention with proper event cleanup
- Performance optimization (no re-render on tab switch)
- Standards-compliant with Foundry V13 ApplicationV2 API
- Consistent implementation across Actor and Item sheets
- Template safety with Handlebars guards
- Dynamic icon and localization support

All 31 modified files now use the official Foundry VTT v13 tab system.
- Increase tab navigation height from 2x to 2.5x line-height
- Add proper flexbox centering for tab items with icons
- Add gap between icon and text (0.25rem)
- Add padding (0.5rem vertical, 0.75rem horizontal) for better touch targets
- Reduce icon size to 0.875rem for better visual balance
- Remove fixed line-height to allow proper vertical centering
- Maintain text shadow effect for active tabs

The tab navigation now properly accommodates FontAwesome icons while
maintaining good visual hierarchy and touch accessibility.
- Create TabHandlingMixin in src/utils/tab-handling-mixin.js
- Extract common tab functionality from DS4ActorSheet and DS4ItemSheet
- Remove ~144 lines of duplicated code across both sheets
- Centralize tab event handling, state management, and DOM updates
- Maintain all existing functionality with better performance
- Fix super() call issues in mixin implementation
- Improve maintainability with single source of truth for tab logic

Benefits:
- Reduced code duplication
- Consistent UX across all sheet types
- Easier maintenance and testing
- Better performance through optimized event handlers
Fix accumulating event listeners that were added on every sheet render
without being cleaned up. This caused exponential memory growth in
long gaming sessions.

Solution:
- Use event delegation with single focusin listener per application
- Add simple deduplication check to prevent multiple listeners
- Minimal 8-line solution that effectively solves the real problem

Impact:
- Prevents browser slowdown in extended sessions
- Reduces memory usage from O(renders × inputs) to O(applications)
- Maintains all existing functionality with clean, maintainable code

Note: Avoided overengineering - proportional solution for real problem
- Add sorting functionality for effects in item sheets
- Implement clickable column headers with sort indicators
- Add _onSortItems, sortItems, _applySortStateToContext methods to item sheet
- Update effect-list-header.hbs template with clickable sorting elements
- Fix CSS selectors to work with item-effect list structure
- Add sort state cleanup in _onClose to prevent memory leaks

This brings feature parity with actor sheets where effects can be sorted
by name with visual indicators (↑/↓) showing sort direction.

Technical details:
- Uses DOM manipulation for performance (no full re-render)
- Maintains sort state during sheet usage
- Proper cleanup prevents memory leaks
- Clean code formatting with no trailing whitespaces

Benefits:
- Better UX for managing multiple effects on items
- Consistent sorting behavior across all sheet types
- Performance-optimized implementation
- Replace Unicode arrows with Font Awesome sort icons for better visual
consistency - Add contextual icon detection: numerical
(fa-sort-numeric), categorical (fa-sort-amount), alphabetical
(fa-sort-alpha) - Implement CSS-based padding for sort indicators to
prevent layout shifts - Position sort icons absolutely to avoid text
overflow issues - Support all DS4 field types: quantities, bonuses,
spell types, effect activity, names, descriptions
- Add boolean sorting support for checkbox columns in both actor and item sheets
- Boolean values now sort correctly: false (unchecked) first in ascending order
- Add fallback handling for mixed or unknown data types
- Improve boolean column detection for appropriate sorting icons
- Affected columns: disabled/active (effects), system.equipped (items)
- Increase width of quantity columns from 3ch to 4ch
- Prevents '#' symbol from being displayed as '...' due to ellipsis
- Provides sufficient space for column header text and sort indicators
- Affects weapon, armor, shield, equipment, and loot item lists
- Add hashtag icon for quantity column headers
- More visually appealing than plain text '#' symbol
- Consistent with modern UI standards
- Uses Font Awesome fa-hashtag icon
- Create shared form-optimization utility with intelligent render logic
- Prevent re-render for form fields that don't affect calculated values
- Force re-render for fields that impact calculations or window title:
  * Name changes (updates window title)
  * Attributes, traits, base/mod values (affect combat values)
  * Effect activation/deactivation (affects character stats)
  * Item equipment status (affects armor class, bonuses)
- Allow scroll position preservation for:
  * Current HP, progression values, character info
  * Item properties like price, quantity, storage
  * Non-calculation checkboxes (spell groups, etc.)
- Consolidate duplicate code into single shouldPreventRender() function
- Add full re-render on tab change to update calculated values
- Ensures defense values, combat stats reflect equipment changes
- Balance between performance (optimized form inputs) and accuracy (updated tabs)
- Remove unused _updateTabDisplay method as full render handles tab switching
- Fixes issue where defense values were stale until sheet reopened
The test setup was missing the foundry global object, causing the
getGame() utility to fail with "foundry is not defined" instead of
the expected error messages in dice evaluation tests.

Added minimal foundry stub with Game and canvas.Canvas classes to
fix 3 failing test cases in check-evaluation.spec.ts.
Change .includes('.base') to .endsWith('.base') to avoid matching
system.baseInfo.* fields which should prevent re-render.
fix: correct .base pattern matching in form optimization

Change .includes('.base') to .endsWith('.base') to avoid matching
system.baseInfo.* fields which should prevent re-render.
- 19 tests for form optimization utility
- 21 tests for sorting functionality
- 16 tests for tab handling logic
- Create tab container parts for values, inventory, spells, abilities, effects, biography
- Remove custom _renderHTML override to use native AppV2 rendering
- Add AppV2 PARTS system to creature sheet with creature-specific templates
- Replace old templates with AppV2 versions, remove -v2 naming
- Clean up empty cases and unused template files
- Implement modular inventory components
- Create character-specific inventory with currency
- Create creature-specific inventory without currency
- Remove duplicate currency.hbs and unused values.hbs
- Clean up handlebars partials references
- Ensure proper tab functionality for both sheet types
- Added overflow-y: auto to tab container styles
- Allows vertical scrolling when tab content overflows
- Improves usability for sheets with many items
- Removed TabHandlingMixin usage from actor and item sheets
- Deleted unused tab-handling-mixin.js file
- Removed call to _removeTabHandlers in _onClose method
- This method was part of the removed TabHandlingMixin
- Fixes error when closing character sheets
- Removed manual form optimization using shouldPreventRender
- Deleted unused form-optimization.js file
- Removed obsolete form-optimization.spec.ts test file
- Now using built-in ApplicationV2 rendering functionality
- Ensured sheets still work correctly without manual optimization
- Added header, tabs, description, and effects parts
- Implemented TABS configuration with proper metadata
- Added _preparePartContext for tab context handling
- Removed manual tab handling in favor of built-in functionality
- Removed shouldPreventRender call from _onChangeForm method
- Removed unused _updateActorProperty method
- Fixed ReferenceError when changing input fields
- Added properties part to PARTS configuration
- Added properties tab to TABS configuration
- Added properties-tab.hbs template
- Fixed _preparePartContext and _prepareTabs methods
- Replace static limited-sheet.hbs with dynamic PARTS/TABS configuration
- Implement permission check using document.permission and TOKEN_DISPLAY_MODES
- Apply name visibility to sheet header and window title consistently
- Add CSS adjustments for limited sheet full-width layout
- Add DS4.UnknownActor localization strings
- Remove unused limited-sheet.hbs template
- Move waypoint-label.hbs from sheets/shared/components to partials directory
- Update template path references in token-ruler.js and handlebars-partials.js
- Move actor/tabs/* content into actor/parts/*-tab.hbs files
- Delete templates/sheets/actor/tabs/ directory
- Remove obsolete template registration
fix(ci): attempt to get ci working
Some checks failed
ci/woodpecker/push/checks Pipeline failed
fcf36031c2
- strip forge and foundry upload parts
fix(style): fix formatting with prettier
Some checks failed
ci/woodpecker/push/checks Pipeline failed
54e55fec1e
fix(tests): fix linting and tests
Some checks failed
ci/woodpecker/push/checks Pipeline failed
d5bd383d7a
fix(style): fix code format
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
557599873b
chore(release): 3.1.0
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
a9e001d2a5
fix: publish pipeline
Some checks failed
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline failed
770a82f3ca
fix: release pipelines
Some checks failed
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline failed
7f52a3cb3b
fix: ci publish pipeline
Some checks failed
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline failed
4b65702e6d
chore: update system.json
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
6a7c1458de
fix(actor-sheet): update values tab after item/effect changes
Some checks failed
ci/woodpecker/tag/checks Pipeline failed
ci/woodpecker/tag/publish unknown status
9a181809cd
Active effects on items (weapons, armor, spells, talents) or directly
modified effects were not updating calculated values in the values tab
until the sheet was closed and reopened.

This fix adds partial re-rendering of the values-tab after item and
effect updates to immediately reflect changes in attributes, traits,
and combat values caused by active effects.

Changes:
- _onChangeItem: Re-render values-tab after item update
- _onChangeEffect: Re-render values-tab after effect update
- Uses partial rendering for performance (only affected tab, not full sheet)

Fixes issue where equipping items with effects or toggling effects
did not update displayed calculated values until sheet reload.
style(actor-sheet): fix prettier formatting
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
5d5e2a64bb
Use double quotes instead of single quotes for consistency with project
prettier configuration.
chore: update verified Foundry version to 13.351
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
54e704d9f2
chore: mint release 3.1.1
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
333f108bba
chore: update system.json for 3.1.1
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
0b060553c3
chore: update download link für 3.1.1
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
b8a341a190
ci: update deprecated Woodpecker plugin reference
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
20fa6b5e78
Replace deprecated woodpeckerci/plugin-gitea-release with
codeberg.org/woodpecker-plugins/gitea-release as recommended by the
plugin maintainers.
chore: update package.json
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
eee352c3b3
chore(config): migrate config renovate.json
Some checks failed
ci/woodpecker/pr/checks Pipeline failed
1688038640
chore: ignore renovate.json for prettier
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
92196fc275
Merge branch 'v13-appv2' into renovate/migrate-config
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
57e72d1dd1
Reviewed-on: #5
chore(deps): update commitlint monorepo to v20
Some checks failed
renovate/artifacts Artifact file update failure
ci/woodpecker/pr/checks Pipeline failed
a0bab28484
chore(deps): update node.js to v24
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
b83589651b
chore(deps): update npm dependencies
Some checks failed
renovate/artifacts Artifact file update failure
ci/woodpecker/pr/checks Pipeline failed
0393dcc7ad
chore(deps): update dependency vitest to v3.2.4
Some checks failed
renovate/artifacts Artifact file update failure
ci/woodpecker/pr/checks Pipeline failed
530980ceca
chore(deps): update npm dependencies
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
1e54efc446
Reviewed-on: #11
chore(deps): update dependency @swc/core to v1.15.3
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
9dc539f8cd
chore(deps): update dependency typescript-eslint to v8.47.0
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
c4f12ee331
chore(deps): update eslint monorepo to v9.39.1
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
c413a77b83
chore(deps): update dependency vitest to v4
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
0091d403dd
chore(deps): update dependency npm-run-all2 to v5.0.2
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
9103691b6f
chore(deps): update npm dependencies
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
88f15f23ee
chore: update repository URLs from f3l.de to athemis.de
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
5d9f4d15ba
Update all repository references, CI badges, and package URLs to reflect
the interim hosting location at git.athemis.de.
chore: add Zed editor configuration
Some checks failed
ci/woodpecker/push/checks Pipeline failed
498f8e0d24
Add Zed settings.json with Prettier formatter, ESLint integration, and
TypeScript language server configuration matching the existing VSCode
setup.
chore: add SPDX license header for Zed settings
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
a776d39d04
- Remove global formatter and format_on_save (default behavior)
- Remove per-language format_on_save settings (enabled by default)
- Remove TypeScript formatter setting (Prettier is default for TS)
- Remove YAML language block (Prettier is default for YAML)
- Remove typescript-language-server config to use default vtsls LSP
- Keep only non-default settings:
  * JavaScript: Prettier formatter (default is TS built-in)
  * JSON: Prettier formatter (not explicitly documented as default)
  * ESLint: useFlatConfig for flat config support
chore(zed): simplify settings by removing default values and using vtsls
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
7b4a1000da
refactor(styles): migrate to Sass modules
All checks were successful
ci/woodpecker/manual/checks Pipeline was successful
ci/woodpecker/pr/checks Pipeline was successful
ef1b2fb052
- Replace rollup-plugin-styler → rollup-plugin-sass (full @use/@forward support)
- Add index files with @forward for all SCSS layers
- Migrate ds4.scss from @import to @forward (28 → 5 imports)
- Remove 84 npm packages from dependency tree
Reviewed-on: #19
- Add husky for git hook management
- Add pre-commit hook for prettier format check
- Add commit-msg hook for conventional commit validation
- Add prepare script to auto-install hooks on pnpm install
- Add SPDX license headers to hook files

Hooks will now enforce:
- Prettier code formatting before commit
- Conventional Commits format for commit messages
chore(deps): update @types/node to resolve peer dependency warnings
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
e815c1138e
Update from 18.19.130 to 24.10.1 to satisfy vite and vitest peer
dependencies
docs: add Git hooks section to README
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
faba51c0ef
- Document pre-commit hook for Prettier formatting
- Document commit-msg hook for Conventional Commits
- Add examples for manual validation
- Explain automatic installation via prepare script
chore: update REUSE metadata and copyright years
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
f729cfd1d8
- Update SPDX-PackageSupplier to current maintainer - Add
SPDX-PackageOriginator to attribute original author - Update
SPDX-PackageDownloadLocation to current repository URL - Update
copyright years for packs to reflect 2025 changes - Add Johannes Loher
attribution for spells packs
feat: add Lora variable fonts and Wood Stamp journal headings
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
c5ef589b33
Implement hybrid typography approach with modern variable fonts:

Typography Changes:
- Add Lora v3.021 variable font for long-form text blocks (line-height: 1.6)
- Add Wood Stamp font to journal entry headings with hierarchical sizing
- Keep UI elements (inputs, labels, buttons, lists) in sans-serif

Lora Applied To (positive list approach):
- Biography and description sections
- ProseMirror editor content (both active and read-only modes)
- Journal entry page content
- Multi-line text areas (special characteristics)

Wood Stamp Applied To Journal Entries:
- Entry title: 3em
- h1: 2.5em, h2: 2.25em, h3: 2em, h4: 1.75em
- All uppercase with optimized letter-spacing (0.05em)

Variable Font Benefits:
- Upgraded to Lora v3.021 (latest release)
- Uses variable fonts (WOFF2) instead of static fonts
- 41% smaller file size (174 KB vs 297 KB)
- Supports continuous font-weight range 400-700
- Better performance and flexibility

Implementation excludes embedded lists, tables, and UI controls
from serif styling for optimal readability and UI consistency.
Reviewed-on: #20
feat: override --font-serif to use Lora (#21)
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
c0266b8376
Set Foundry's --font-serif to --ds4-font-text for consistent typography
in UI elements like the pause screen.

Reviewed-on: #21
fix: enrich item descriptions in actor sheet inventory
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
0ac54d28f6
Enrich HTML content of item descriptions when displaying them in actor
sheet inventory lists. This resolves UUID links and other rich text
content properly.

Previously, @UUID[...] references were shown as raw text in the
inventory description column, while they worked correctly in the item
sheet's detail view.

Fixes #22
chore: prepare release 3.1.2
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
204ac4aab6
fix: use Lora for journal blockquotes
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
4c00e5054b
Ensure blockquotes inside journal page content use the Lora serif text
font instead of Foundry's default sans-serif blockquote font.
fix: properly display enriched HTML in inventory descriptions
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
1190b2ab53
Fix single-line display of enriched item descriptions in inventory
by flattening nested HTML elements while keeping links clickable.

Changes:
- Force all nested HTML (p, div, lists, blockquotes) to inline
- Use smaller font for text (0.75em) but full size for links (1em)
- Restore Foundry's content-link styling (padding, margin)
- Restore icon spacing in links (margin-right)
- Remove list markers for inline display
- Apply proper left-aligned truncation with ellipsis

Previously, enriched HTML caused centering issues and text being
cut off at both ends. Now displays as single line with proper
truncation at the end only.
chore(deps): update dependency vitest to v4.0.14
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
d53649b27f
chore(deps): update dependency typescript-eslint to v8.48.0
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
098f091183
- remove rollup-plugin-swc3 and @swc/core
- add @rollup/plugin-typescript and update rollup.config.js
- drop pnpm onlyBuiltDependencies for @swc/core
- remove husky and .husky/ directory
- add simple-git-hooks with configuration in package.json
- unset git core.hooksPath to use default .git/hooks/
- simpler, more lightweight, and actively maintained alternative
ci: update pipelines
Some checks failed
ci/woodpecker/push/checks Pipeline failed
af4063e846
chore: remove accidentally committed .husky directory
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
d86d03f086
build(rollup): add terser plugin for production minification
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
106b662c19
- add @rollup/plugin-terser for JS minification in production builds -
disable source maps in release (only in dev for debugging) - preserve
class names and function names for Foundry VTT compatibility
chore(assets): optimize PNG files with oxipng
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
0c4584c339
- run oxipng -o max on all 145 PNG files - reduces asset size from ~12MB
to ~9.94MB (17% smaller) - lossless optimization, no quality loss
feat(assets): convert icons to WebP format
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
21a0955072
- convert all 44 icons in assets/icons/official/ to WebP lossless - use
cwebp -lossless -z 9 -m 6 for optimal compression - update icon
references in src/config.ts and compendium packs - remove combat-values
PNG files (not used in compendiums) - keep special-creature-abilities
PNGs for backward compatibility - reduces icon size from ~1.2MB to
~0.6MB (50% smaller) - new compendium instances use WebP, existing
worlds remain compatible
fix(styles): update combat value icon references to WebP
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
e5c2373592
- replace PNG paths with WebP in _combat_value.scss
build(rollup): add sharp-based icon optimization
Some checks failed
ci/woodpecker/push/checks Pipeline failed
af99385f1e
- add sharp as dev dependency - introduce optimize-icons Rollup plugin
to downscale webp icons in dist - integrate optimize-icons into
production build pipeline
chore: prepare release 3.1.3
Some checks failed
ci/woodpecker/push/checks Pipeline failed
ci/woodpecker/tag/checks Pipeline failed
ci/woodpecker/tag/publish unknown status
ec17ef0ab5
chore(build): fix lint issues in optimize-icons plugin
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
676db80aa4
- remove unused fs stat import - use bare catch block to satisfy
@typescript-eslint/no-unused-vars
Revert "build(rollup): replace swc plugin with official typescript plugin"
Some checks failed
ci/woodpecker/push/checks Pipeline failed
74d949d86f
This reverts commit a4fba06b6f.
Revert "build(rollup): add terser plugin for production minification"
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
7cc9b998db
This reverts commit 106b662c19.
- convert bitmap (webp) combat value icons to svg
- keep webp in tree for the moment
chore: delete old bitmap combat value icons
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
4a85b3ed42
chore: asset optimization plugin with SVG and bitmap support
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
9f33ec1783
chore: run lint in pre-commit hook
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
3b3405017e
style: combat value container and formula item sizes
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
a54477ac5c
style: increase minimum height of actor sheet
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
387ec6dacc
- prevents vertical scrollbar unless resized manually
feat: show DS4 check icons on actor value tab
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
e2cc5f5810
- match labels/content
style: center core value input field contents
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
7b5272ff76
chore: bump version to 3.1.4
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
dffc3b90c7
chore(deps): update dependency svgo to v4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
c87239e029
chore(deps): update npm dependencies
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline failed
a37fbb3328
chore(deps): update dependency prettier to v3.7.2
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
ci/woodpecker/pr/checks Pipeline failed
a47ac13cf9
style: fix code formatting
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
e39cbbce3e
chore(deps): update dependency prettier to v3.7.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
3ced7570ab
chore(deps): update dependency typescript-eslint to v8.48.1
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
ccdcc04b0c
chore(deps): update dependency vitest to v4.0.15
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
1848f94bba
chore(deps): update npm dependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
1d5901ebcb
fix: update relevant tabs on equip toggle
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
bb70ca654e
fix: improve hover contrast for rollable image in dark mode
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
5de4a47f80
Reviewed-on: #34
chore: bump version to 3.1.5
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
c73e240265
chore(deps): update commitlint monorepo to v20.2.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
78b7499f1f
chore(deps): update npm dependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
6a8792bb08
chore(deps): update dependency typescript-eslint to v8.49.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
193028abc9
chore(deps): update npm dependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
bb3241c19e
feat: update creature tokens (#39)
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
4ce3a951a9
- add missing actor images and tokens using artwork from Devin Nights free token set
- convert remaining png icons to webp
- add migrations to update world actors to use webp icons

Reviewed-on: #39
Co-authored-by: Alexander Minges <alexander.minges@gmail.com>
Co-committed-by: Alexander Minges <alexander.minges@gmail.com>
feat: enhance token ruler color coding (#40)
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
bceebaa906
- color grid fields
- keep colored label with icon

Reviewed-on: #40
Co-authored-by: Alexander Minges <alexander.minges@gmail.com>
Co-committed-by: Alexander Minges <alexander.minges@gmail.com>
chore: bump version to 3.1.6
Some checks failed
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline failed
e454c21904
fix: also migrate user-created compendia
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
013ff616c7
chore: bump version to 3.1.7
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
0896a5852f
fix: migrate icons for user compendia
Some checks failed
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline failed
a2b8e9dba0
chore(release): version bump to 3.2.0
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/tag/checks Pipeline was successful
ci/woodpecker/tag/publish Pipeline was successful
5187c71a84
- migrating actors is a breaking change; reflect this by raising the version properly
chore(deps): update eslint monorepo to v9.39.2
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
4ef74c00a7
fix: use placeholder instead of unfitting token for "Tentakelhirn"
Some checks failed
ci/woodpecker/pr/checks Pipeline failed
f81ff9b690
chore(assets): remove duplicate and unused tokens
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
9503342893
Reviewed-on: #42
Merge branch 'v13-appv2' into fix/tentacle-brain-token
All checks were successful
ci/woodpecker/pr/checks Pipeline was successful
031e52c288
Reviewed-on: #43
chore(deps): update dependency @swc/core to v1.15.5
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
ci/woodpecker/pr/checks Pipeline was successful
0f11d17016
Merge pull request 'chore(deps): update dependency @swc/core to v1.15.5' (#44) from renovate/swc-monorepo into v13-appv2
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
ci/woodpecker/pr/checks Pipeline was successful
c3747e6c09
Athemis self-assigned this 2025-12-15 13:56:24 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Athemis/ds4!46
No description provided.