Merge branch 'main' into adjust-domain-card-size

This commit is contained in:
Carlos Fernandez 2026-05-25 18:55:51 -04:00
commit d0ffbe77be
58 changed files with 1065 additions and 399 deletions

View file

@ -22,7 +22,7 @@
<div class="checks-container {{#unless source.checked}}collapsed{{/unless}}">
{{#each source.packs as |pack|}}
<div class="check-container">
<input type="checkbox" class="pack-checkbox" data-type="{{pack.type}}" data-pack="{{pack.pack}}" {{checked pack.checked}} />
<input type="checkbox" class="pack-checkbox" data-type="{{pack.type}}" data-source="{{@../key}}" data-pack-name="{{pack.name}}" {{checked pack.checked}} />
<label>{{pack.label}}</label>
</div>
{{/each}}

View file

@ -4,10 +4,6 @@
<input type="text" name="elevation" value="{{elevation}}" {{disabled (or locked (and isGamePaused (not isGM)))}}>
</div>
<button type="button" class="control-icon" data-action="sort" data-tooltip="HUD.ToFrontOrBack">
<i class="fa-solid fa-arrow-down-arrow-up" inert></i>
</button>
{{#if canChangeLevel}}
<button type="button" class="control-icon" data-action="togglePalette" data-palette="levels"
aria-label="{{ localize "HUD.ChangeLevel" }}" data-tooltip>
@ -20,14 +16,25 @@
</div>
{{/if}}
<button type="button" class="control-icon" data-action="sort" data-tooltip aria-label="HUD.ToFrontOrBack">
<i class="fa-solid fa-bring-forward" inert></i>
</button>
{{#if hasCompanion}}
<button type="button" class="control-icon clown-car" data-action="toggleCompanions" data-tooltip="{{#if companionOnCanvas}}{{localize "DAGGERHEART.APPLICATIONS.HUD.tokenHUD.retrieveCompanionTokens"}}{{else}}{{localize "DAGGERHEART.APPLICATIONS.HUD.tokenHUD.depositCompanionTokens"}}{{/if}}">
<img {{#if companionOnCanvas}}class="flipped"{{/if}} src="{{icons.toggleClowncar}}">
</button>
{{/if}}
{{#if isGM}}
<button type="button" class="control-icon {{lockedClass}}" data-action="locked"
data-tooltip aria-label="{{localize (ifThen lockedClass "HUD.Unlock" "HUD.Lock")}}">
<i class="fa-solid {{ifThen lockedClass "fa-lock" "fa-lock-open"}}" inert></i>
</button>
{{/if}}
{{#if canConfigure}}
<button type="button" class="control-icon" data-action="config" data-tooltip="HUD.OpenConfig">
<button type="button" class="control-icon" data-action="config" data-tooltip aria-label="HUD.OpenConfig">
<i class="fa-solid fa-gear" inert></i>
</button>
{{/if}}
@ -49,8 +56,9 @@
<div class="col right">
{{#if isGM}}
<button type="button" class="control-icon {{visibilityClass}}" data-action="visibility" data-tooltip="HUD.ToggleVis">
<img src="{{icons.visibility}}">
<button type="button" class="control-icon {{visibilityClass}}" data-action="visibility"
data-tooltip aria-label="{{localize (ifThen visibilityClass "HUD.Show" "HUD.Hide")}}">
<i class="fa-solid {{ifThen hidden "fa-eye-slash" "fa-eye"}}" inert></i>
</button>
{{/if}}
@ -119,13 +127,15 @@
{{/each}}
</div>
<button type="button" class="control-icon {{targetClass}}" data-action="target" data-tooltip="HUD.ToggleTargetState">
<button type="button" class="control-icon {{targetClass}}" data-action="target"
data-tooltip aria-label="{{localize (ifThen targetClass "HUD.Untarget" "HUD.Target")}}">
<i class="fa-solid fa-bullseye" inert></i>
</button>
{{#if canToggleCombat}}
<button type="button" class="control-icon {{combatClass}}" data-action="combat" data-tooltip="HUD.ToggleCombatState">
<img src="{{icons.combat}}">
<button type="button" class="control-icon {{combatClass}}" data-action="combat"
data-tooltip aria-label="{{localize (ifThen combatClass "HUD.ExitCombat" "HUD.EnterCombat")}}">
<i class="fa-solid fa-swords" inert></i>
</button>
{{/if}}
</div>

View file

@ -1,4 +1,4 @@
<div>
<div class="standard-form">
{{formGroup settingFields.schema.fields.hideObserverPermissionInChat value=settingFields._source.hideObserverPermissionInChat localize=true}}
{{formGroup settingFields.schema.fields.hidePartyStats value=settingFields._source.hidePartyStats localize=true}}
</div>
{{formGroup settingFields.schema.fields.hidePartyStats value=settingFields._source.hidePartyStats localize=true}}
</div>

View file

@ -1,20 +1,43 @@
<div class="tab scrollable{{#if tab.active}} active{{/if}}" data-group="{{tab.group}}" data-tab="{{tab.id}}">
{{formGroup fields.texture.fields.src value=source.texture.src rootId=rootId}}
{{#if randomImgEnabled}}
{{formGroup fields.randomImg value=source.randomImg classes="slim" rootId=rootId}}
{{else if hasAlternates}}
<div class="form-group">
<label for="{{rootId}}-alternateImages">{{localize "TOKEN.ImageAlts"}}</label>
<select id="{{rootId}}-alternateImages" class="alternate-images" name="alternateImages">
{{selectOptions alternateImages selected=source.texture.src blank=""}}
</select>
<div class="token-image-group">
{{formGroup fields.texture.fields.src value=source.texture.src rootId=rootId}}
{{#if randomImgEnabled}}
{{formGroup fields.randomImg value=source.randomImg classes="slim" rootId=rootId}}
{{else if hasAlternates}}
<div class="form-group">
<label for="{{rootId}}-alternateImages">{{localize "TOKEN.ImageAlts"}}</label>
<select id="{{rootId}}-alternateImages" class="alternate-images" name="alternateImages">
{{selectOptions alternateImages selected=source.texture.src blank=""}}
</select>
</div>
{{/if}}
{{#if imagePreview}}
<div class="{{imagePreview.cls}}">
{{#if imagePreview.isVideo}}
<video class="token-image-thumb" src="{{imagePreview.src}}" autoplay muted loop playsinline
disablepictureinpicture></video>
{{else}}
<img class="token-image-thumb" src="{{imagePreview.src}}" alt="{{localize "TOKEN.ImagePreview"}}">
{{/if}}
<div class="token-image-controls">
<button type="button" class="cycle-prev icon fa-solid fa-chevron-left" data-action="cycleImage"
data-delta="-1" aria-label="{{localize "TOKEN.ImageCyclePrev"}}"
{{#unless imagePreview.hasPrev}} disabled{{/unless}}></button>
<span class="counter">{{imagePreview.current}} / {{imagePreview.total}}</span>
<button type="button" class="cycle-next icon fa-solid fa-chevron-right" data-action="cycleImage"
data-delta="1" aria-label="{{localize "TOKEN.ImageCycleNext"}}"
{{#unless imagePreview.hasNext}} disabled{{/unless}}></button>
</div>
</div>
{{/if}}
</div>
{{/if}}
<fieldset>
<legend>{{localize "Token Size"}}</legend>
<legend>{{localize "DAGGERHEART.APPLICATIONS.TokenConfig.tokenSize"}}</legend>
{{#if usesActorSize}}
<div class="form-group lim">
<label>{{localize "Size Category"}}</label>
<div class="form-group slim">
<label>{{localize "DAGGERHEART.APPLICATIONS.TokenConfig.sizeCategory"}}</label>
<select id="dhTokenSize">
{{selectOptions tokenSizes selected=tokenSize valueAttr="id" labelAttr="label" localize=true}}
@ -23,15 +46,17 @@
{{/if}}
<div id="tokenSizeDimensions" class="form-group slim" {{#if actorSizeDisable}}data-tooltip="{{localize "DAGGERHEART.APPLICATIONS.TokenConfig.actorSizeUsed"}}"{{/if}}>
<label>
{{localize "TOKEN.Dimensions"}} <span class="units">({{localize "GridSpaces"}})</span>
<i class="fa-solid fa-lock" {{#unless actorSizeDisable}}style="opacity: 0%;"{{/unless}}></i>
</label>
<div class="form-fields">
<span class="label">
{{localize "TOKEN.Size"}}
<span class="units">({{localize "MEASUREMENT.GridSpaces"}})</span>
</span>
<div class="form-group slim">
<label for="{{rootId}}-width">{{localize "DOCUMENT.FIELDS.width.label"}}</label>
{{formInput fields.width value=source.width id=(concat rootId "-width") disabled=actorSizeDisable}}
<label for="{{rootId}}-height">{{localize "DOCUMENT.FIELDS.height.label"}}</label>
{{formInput fields.height value=source.height id=(concat rootId "-height") disabled=actorSizeDisable}}
<label for="{{rootId}}-depth">Z</label>
{{formInput fields.depth value=source.depth id=(concat rootId "-depth") disabled=actorSizeDisable}}
</div>
</div>
</fieldset>

View file

@ -5,16 +5,9 @@
{{formGroup systemFields.targetDispositions value=source.system.targetDispositions name=(concat "system.targetDispositions") localize=true}}
{{#if isActorEffect}}
<div class="form-group">
<label>{{localize "EFFECT.FIELDS.origin.label"}}</label>
<div class="form-fields">
<input type="text" value="{{source.origin}}" disabled />
</div>
</div>
{{/if}}
{{#if isItemEffect}}
{{formGroup fields.transfer value=source.transfer rootId=rootId label=legacyTransfer.label hint=(localize "DAGGERHEART.EFFECTS.Attachments.transferHint")}}
{{formGroup fields.origin value=source.origin rootId=rootId disabled=true}}
{{else if isItemEffect}}
{{formGroup fields.transfer value=source.transfer rootId=rootId}}
{{/if}}
{{formGroup fields.statuses value=source.statuses options=statuses rootId=rootId classes="statuses"}}

View file

@ -6,6 +6,7 @@
type='feature'
collection=@root.features
hideContextMenu=true
hideModifyControls=true
canCreate=@root.editable
showActions=@root.editable
}}

View file

@ -64,7 +64,7 @@
{{/if}}
</div>
{{#if document.system.multiclass.value}}
{{#if (or document.system.multiclass.value document.system.multiclass.subclass)}}
<div class="multiclass">
{{#if document.system.multiclass.value}}
<span data-action="editDoc"data-item-uuid="{{document.system.multiclass.value.uuid}}">{{document.system.multiclass.value.name}}</span>

View file

@ -44,7 +44,7 @@
</div>
{{else}}
<div class='status-value'>
<input class="bar-input armor-marks-input" value="{{document.system.armorScore.value}}" type="number">
<input class="bar-input armor-marks-input" value="{{document.system.armorScore.value}}" type="number" id="{{document.uuid}}-armor-slots">
<span>/</span>
<span class="bar-label">{{document.system.armorScore.max}}</span>
</div>

View file

@ -9,6 +9,7 @@
type='feature'
collection=@root.features
hideContextMenu=true
hideModifyControls=true
canCreate=@root.editable
showActions=@root.editable
}}

View file

@ -1,28 +1,7 @@
<header class='environment-header-sheet'>
<img class='profile' src='{{source.img}}' data-action='editImage' data-edit='img' />
<div class='item-container'>
<div class="item-info">
<h1 class='item-name'><input type='text' name='name' value='{{source.name}}' /></h1>
<div class="flexcol">
<div class="tags">
<div class="tag">
<span>
{{localize (concat 'DAGGERHEART.GENERAL.Tiers.' source.system.tier)}}
</span>
</div>
{{#if source.system.type}}
<div class="tag">
<span>
{{localize (concat 'DAGGERHEART.CONFIG.EnvironmentType.' source.system.type '.label')}}
</span>
</div>
{{/if}}
</div>
{{#if (and showAttribution document.system.attributionLabel)}}
<label class="attribution-header-label">{{document.system.attributionLabel}}</label>
{{/if}}
</div>
</div>
<h1 class='item-name'><input type='text' name='name' value='{{source.name}}' /></h1>
<div class="status-number">
<div class='status-value armor-slots'>
{{#if source.system.difficulty}}
@ -35,6 +14,25 @@
<h4>{{localize "DAGGERHEART.GENERAL.difficulty"}}</h4>
</div>
</div>
<div class="flexrow">
<div class="tags">
<div class="tag">
<span>
{{localize (concat 'DAGGERHEART.GENERAL.Tiers.' source.system.tier)}}
</span>
</div>
{{#if source.system.type}}
<div class="tag">
<span>
{{localize (concat 'DAGGERHEART.CONFIG.EnvironmentType.' source.system.type '.label')}}
</span>
</div>
{{/if}}
</div>
{{#if (and showAttribution document.system.attributionLabel)}}
<label class="attribution-header-label">{{document.system.attributionLabel}}</label>
{{/if}}
</div>
</div>
<line-div></line-div>
<div class="environment-info">

View file

@ -2,9 +2,7 @@
<img class='profile' src='{{source.img}}' data-action='editImage' data-edit='img' />
<div class='item-container'>
<div class="item-info">
<h1 class='item-name'>
<input type='text' name='name' value='{{source.name}}' autocomplete="off" spellcheck="false"/>
</h1>
<input class="item-name" type='text' name='name' value='{{source.name}}' autocomplete="off" spellcheck="false"/>
</div>
</div>
</header>

View file

@ -19,6 +19,8 @@ Parameters:
- showLabels {boolean} : If true, show label-tags else show simple tags.
- hideTooltip {boolean} : If true, disables the tooltip on the item image.
- hideControls {boolean} : If true, hides the controls inside inventory-item partials.
- hideContextMenu {boolean}: If true, hides the context menu dropdown button
- hideModifyControls {boolean}: If true, hides the edit and delete options
- hideDescription {boolean} : If true, hides the item's description.
- hideResources {boolean} : If true, hides the item's resources.
- showActions {boolean} : If true show feature's actions.
@ -59,6 +61,7 @@ Parameters:
actorType=(ifThen ../actorType ../actorType @root.document.type)
hideControls=../hideControls
hideContextMenu=../hideContextMenu
hideModifyControls=../hideModifyControls
isActor=../isActor
categoryAdversary=../categoryAdversary
hideTooltip=../hideTooltip

View file

@ -12,6 +12,8 @@ Parameters:
- hideTags {boolean} : If true, hide simple-tags else show simple-tags.
- hideTooltip {boolean} : If true, disables the tooltip on the item image.
- hideControls {boolean} : If true, hides the controls inside inventory-item partials.
- hideContextMenu {boolean}: If true, hides the context menu dropdown button
- hideModifyControls {boolean}: If true, hides the edit and delete options (todo: swap to show, only party cares to show this)
- hideDescription {boolean} : If true, hides the item's description.
- hideResources {boolean} : If true, hides the item's resources.
- showActions {boolean} : If true show feature's actions.
@ -112,12 +114,12 @@ Parameters:
<a data-action="triggerContextMenu" data-tooltip="DAGGERHEART.UI.Tooltip.moreOptions">
<i class="fa-solid fa-fw fa-ellipsis-vertical" inert></i>
</a>
{{else if @root.editable}}
{{else if (and @root.editable (not hideModifyControls))}}
<a data-action="editDoc" data-tooltip="DAGGERHEART.UI.Tooltip.edit">
<i class="fa-solid fa-edit" inert></i>
</a>
{{#if (not isActor)}}
<a data-action="deleteItem" data-tooltip="DAGGERHEART.UI.Tooltip.deleteItem">
<a data-action="deleteDoc" data-tooltip="DAGGERHEART.UI.Tooltip.deleteItem">
<i class="fa-solid fa-trash" inert></i>
</a>
{{else if (eq type 'adversary')}}

View file

@ -46,6 +46,13 @@
placeholder=(localize (ifThen dimensionsDisabled "DAGGERHEART.ITEMS.Beastform.FIELDS.tokenSize.disabledPlaceholder" "DAGGERHEART.ITEMS.Beastform.FIELDS.tokenSize.placeholder"))
disabled=dimensionsDisabled
}}
{{formGroup
systemFields.tokenSize.fields.depth
value=source.system.tokenSize.depth
localize=true
placeholder=(localize (ifThen dimensionsDisabled "DAGGERHEART.ITEMS.Beastform.FIELDS.tokenSize.disabledPlaceholder" "DAGGERHEART.ITEMS.Beastform.FIELDS.tokenSize.placeholder"))
disabled=dimensionsDisabled
}}
</div>
<div class="full-width">
{{formGroup systemFields.tokenSize.fields.scale value=source.system.tokenSize.scale localize=true }}

View file

@ -6,7 +6,7 @@
{{#if roll.isCritical}}
<span>{{localize "DAGGERHEART.GENERAL.criticalShort"}}</span>
{{else}}
{{#if (and roll.dHope (not (eq roll.type "reaction")))}}
{{#if (and roll.dHope (not (eq roll.options.roll.type "reaction")))}}
<span>{{localize "DAGGERHEART.GENERAL.withThing" thing=roll.totalLabel}}</span>
{{/if}}
{{/if}}

View file

@ -13,20 +13,20 @@
<div class="combatant-controls flex-0">
{{#if @root.user.isGM}}
<button type="button" class="inline-control combatant-control icon fa-solid fa-eye-slash {{#if hidden}}active{{/if}}"
data-action="toggleHidden" data-tooltip aria-label="{{ localize "COMBAT.ToggleVis" }}"></button>
data-action="toggleHidden" data-tooltip aria-label="{{ localize (ifThen hidden "COMBATANT.Show" "COMBATANT.Hide") }}"></button>
<button type="button" class="inline-control combatant-control icon fa-solid fa-skull {{#if isDefeated}}active{{/if}}"
data-action="toggleDefeated" data-tooltip
aria-label="{{ localize "COMBAT.ToggleDead" }}"></button>
aria-label="{{ localize (ifThen isDefeated "COMBATANT.UnmarkDefeated" "COMBATANT.MarkDefeated") }}"></button>
{{/if}}
{{#if canPing}}
<button type="button" class="inline-control combatant-control icon fa-solid fa-bullseye-arrow"
data-action="pingCombatant" data-tooltip
aria-label="{{ localize "COMBAT.PingCombatant" }}"></button>
aria-label="{{ localize "COMBATANT.Ping" }}"></button>
{{/if}}
{{#unless @root.user.isGM}}
<button type="button" class="inline-control combatant-control icon fa-solid fa-arrows-to-eye"
data-action="panToCombatant" data-tooltip
aria-label="{{ localize "COMBAT.PanToCombatant" }}"></button>
aria-label="{{ localize "COMBATANT.PanTo" }}"></button>
{{/unless}}
</div>

View file

@ -12,15 +12,20 @@
</menu>
{{/with}}
{{#if scenes.levels}}
<menu id="scene-navigation-levels" class="scene-levels scene-navigation-menu flexcol" style="--max-levels: {{ scenes.levels.length }}">
<menu id="scene-navigation-levels" class="scene-levels scene-navigation-menu flexcol"
style="--max-levels: {{ scenes.levels.length }}">
{{#each scenes.levels}}
<li class="level-row">
{{#with button}}
<button type="button" class="ui-control icon fa-solid {{ css }}" data-action="cycleLevel"
data-direction="{{ direction }}" aria-label="{{ label }}"></button>
{{/with}}
<div class="ui-control scene scene-level {{ css }}" data-scene-id="{{ sceneId }}" data-level-id="{{ id }}" data-action="viewLevel">
<span class="ellipsis">{{ name }}</span>
{{#if users}}
<ul class="scene-players">
{{#each users}}
<li class="scene-player" style="--color-bg: {{ color }}; --color-border: {{ border }}" data-tooltip
aria-label="{{ name }}">{{ letter }}</li>
{{/each}}
</ul>
{{/if}}
</div>
</li>
{{/each}}
@ -40,7 +45,8 @@
{{#*inline ".scene"}}
<li class="scene-wrapper">
<div class="ui-control scene {{ cssClass }}" data-scene-id="{{ id }}" data-action="viewScene" {{#if tooltip}}data-tooltip-text="{{ tooltip }}"{{/if}}>
<div class="ui-control scene {{ cssClass }}" data-scene-id="{{ id }}" data-action="viewScene"
{{#if tooltip}}data-tooltip-text="{{ tooltip }}"{{/if}}>
<span class="scene-name ellipsis">{{ name }}</span>
{{#if users}}
<ul class="scene-players">