Add Warm-Up and Stretching activity types

Adds WorkoutActivityType.warmUp (HealthKit .preparationAndRecovery) and
.stretching (.flexibility), and retags the six starter splits that were all
mislabeled as Functional Strength:

- Warm-Up:    Upper Body Warm-Up, Lower Body Warm-Up, Morning Wake-Up
- Stretching: Morning Mobility, Full Body Stretch, Evening Stretch

The split editor's activity picker surfaces them automatically (CaseIterable).
Older app versions decode the new raw values as the default type — additive and
not schema-gated, so no quarantine.
This commit is contained in:
2026-07-09 15:45:31 -04:00
parent f01e149269
commit e12fe31152
308 changed files with 5594 additions and 990 deletions
+25 -4
View File
@@ -1,13 +1,34 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Neck Rolls</title>
<defs>
<linearGradient id="grad-leg_l-0" gradientUnits="userSpaceOnUse" x1="165.8" y1="94.3" x2="169.3" y2="124.2"><stop offset="0" stop-color="#4d525e"/><stop offset="1" stop-color="#a9afba"/></linearGradient>
<linearGradient id="grad-leg_r-1" gradientUnits="userSpaceOnUse" x1="157.8" y1="124.5" x2="157.5" y2="150.5"><stop offset="0" stop-color="#3a3f4b"/><stop offset="1" stop-color="#7e848f"/></linearGradient>
<linearGradient id="grad-leg_r-2" gradientUnits="userSpaceOnUse" x1="157.5" y1="150.5" x2="163.4" y2="151.3"><stop offset="0" stop-color="#7e848f"/><stop offset="1" stop-color="#3a3f4b"/></linearGradient>
<linearGradient id="grad-arm_l-0" gradientUnits="userSpaceOnUse" x1="163.4" y1="38.8" x2="167.5" y2="57.1"><stop offset="0" stop-color="#6b717c"/><stop offset="1" stop-color="#a9afba"/></linearGradient>
<linearGradient id="grad-arm_r-1" gradientUnits="userSpaceOnUse" x1="156.3" y1="61.5" x2="162.1" y2="79.8"><stop offset="0" stop-color="#3a3f4b"/><stop offset="1" stop-color="#717782"/></linearGradient>
</defs>
<path d="M 133.0 154.6 L 166.7 158.7 L 189.4 153.1 L 155.7 149.0 Z" fill="none" stroke="#b9bec9" stroke-width="1.98" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.8 94.3 L 169.3 124.2 L 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.4 94.6 L 157.8 124.5 L 157.4 150.6 L 164.3 151.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 163.4 38.8 L 167.5 57.1 L 173.3 75.4" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<g id="leg_l">
<path d="M 165.8 94.3 L 169.3 124.2" stroke="url(#grad-leg_l-0)" stroke-width="3.57493" stroke-linecap="round"/>
<path d="M 169.3 124.2 L 162.6 149.3" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round"/>
<path d="M 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round"/>
</g>
<g id="leg_r">
<path d="M 157.4 94.6 L 157.8 124.5" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round"/>
<path d="M 157.8 124.5 L 157.5 150.5" stroke="url(#grad-leg_r-1)" stroke-width="3.75657" stroke-linecap="round"/>
<path d="M 157.5 150.5 L 163.4 151.3" stroke="url(#grad-leg_r-2)" stroke-width="3.75657" stroke-linecap="round"/>
</g>
<g id="arm_l">
<path d="M 163.4 38.8 L 167.5 57.1" stroke="url(#grad-arm_l-0)" stroke-width="3.48373" stroke-linecap="round"/>
<path d="M 167.5 57.1 L 173.3 75.4" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round"/>
</g>
<path id="girdle" d="M 163.4 38.8 L 156.2 40.4 L 152.1 43.2" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.8 94.3 L 160.0 93.9 L 157.4 94.6" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.9 Q 161.9 64.8 156.2 40.4" stroke="#0d9488" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 152.1 43.2 L 156.3 61.5 L 162.1 79.8" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<g id="arm_r">
<path d="M 152.1 43.2 L 156.3 61.5" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round"/>
<path d="M 156.3 61.5 L 162.1 79.8" stroke="url(#grad-arm_r-1)" stroke-width="3.79605" stroke-linecap="round"/>
</g>
<circle id="head" cx="155.5" cy="28.5" r="6.6000000000000005" fill="white" stroke="#3a3f4b" stroke-width="3.96"/>
<line id="nose" x1="161.5" y1="31.2" x2="164.4" y2="32.6" stroke="#3a3f4b" stroke-width="2.64" stroke-linecap="round"/>
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB